cshスクリプトソーシングは、誤った置換なしでパス変数を設定しません。

cshスクリプトソーシングは、誤った置換なしでパス変数を設定しません。

以下のソースパス変数の簡単なスクリプトを作成しています。

#!/bin/csh
echo "setting path"
set path=($path /sbin:/mscc/apps)

ただし、パス変数は変更されず、同じままです。エラー/警告なしでcshシェルを実行します。

次のように誤った行を追加した場合:

setenv PATH $PATH:sbin

「悪い選択肢」について文句を言った。しかし、上記の2つのパスが追加されました。なぜこれが起こるのですか?

ベストアンサー1

私がコピーできる場合にのみ、このアイテムをコピーできます。実装する次のスクリプト:

$ echo $path
/usr/local/bin /usr/bin /usr/local/sbin /usr/sbin

$ ./script.csh
setting path
$ echo $path
/usr/local/bin /usr/bin /usr/local/sbin /usr/sbin

次に変更すると源泉スクリプトを実行すると、他の動作が表示されます。

$ source script.csh
setting path
$ echo $path
/usr/local/bin /usr/bin /usr/local/sbin /usr/sbin /sbin:/mscc/apps

/sbin /mscc/apps(コロンの代わりにスペースで要素を区切りたいですか?)

おすすめ記事