setenvがtcshで動作しない

setenvがtcshで動作しない

新しく購入したCentOにプログラムをインストールしようとしています。インストールに必要ですsetenv。 tcshシェルでも明らかに動作しません。

誰でも私にアドバイスを与えることができますか?

[Anna@anna xd-demo] ./setup.csh

Configuring shell for the XD2006 :
./setup.csh: line 7: setenv: command not found
./setup.csh: line 8: setenv: command not found
./setup.csh: line 9: setenv: command not found
./setup.csh: line 10: setenv: command not found
./setup.csh: line 11: syntax error near unexpected token `('
./setup.csh: line 11: `set path=( $XD_ROOT/bin $XD_ROOT/lib/xd $XD_ROOT/lib/xdgraph $path )'
[Anna@anna xd-demo]$ echo $shell
/bin/tcsh

答え1

スクリプトは実際にはtcshによって実行されません。 tcshでコマンドを実行しましたが、./setup.csh独自のプロセスで実行された別のコマンドでした。あなたが示したものからスクリプトがtcshで実行されると思う理由はありません。setenv一部の他のインタプリタがスクリプトを実行しているため、コマンドが見つかりません。追加の証拠として、エラーメッセージの形式はbash、dash、kshの形式と一致しますが、tcshの形式と一致しません。

これはスクリプトのバグです。それは次に終わらなければならないシェルボーンスクリプトが設計されたインタプリタ(シェル)を表す行。 tcshスクリプトは次の行で始まる必要があります。

#!/usr/bin/env tcsh

この行を追加します(最初の行でなければなりません。ファイルにはWindows行の末尾がないため、WindowsエディタまたはLinuxエディタを使用している場合は注意してください)。あるいは、ファイルを編集したくない場合は、tcshを明示的に呼び出すこともできます。

tcsh ./setup.csh

どのシェルでもこれを行うことができ、望ましくない場合はtcshを対話的に使用する必要はありません。

関連情報