許可された答えからインスピレーションを得ました。このスレッド、tcsh(バージョン6.14.00)から同様の構造をコピーしようとしましたが、成功しませんでした。
setenv new_PATH (
/some/path
/some/other/path
# Some comments
/foo/path
# Another group
/bar/path
$PATH) # Attach $PATH at the end in case we had previous declarations
setenv PATH `sed -e '/^#/'d -e '/^$/'d << EOF | paste -d ":" -s $new_PATH`
" "エラーが発生しますToo many ('s
。私は何が間違っていましたか?
答え1
次のことができます。
set path = ( \
/this/dir \
\
# This is a comment \
\
/that/dir \
/another/dir \
)
別の方法は、ファイルからディレクトリ名を読み取ることです。
set path = ()
foreach dir (`/bin/cat path.txt`)
set path = ( $path $dir )
end
/bin/cat
ちょうど私を壊したので指定する必要があります$PATH
。
cat
コメントをフィルタリングすること(たとえば、単純なコマンドsed
や/bin/sed
コマンドなど)に置き換えることができます。
これにより、スペースやその他の興味深い文字を含むディレクトリパスに問題が発生する可能性がありますが、とにかくこれらの問題を避けるようにしてください。
答え2
setenv
環境変数を設定すると配列にすることはできません。setenv
汎用コマンドの構文があります。
このset
コマンドはシェル変数を配列に設定します。すべての要素を同じ行に配置する必要があります。
set new_PATH = ( /some/path /some/other/path … )
Tcshはpath
シェル変数をPATH
環境変数と同期するため、これを手動で実行する必要はありません。
set new_PATH = ( /some/path /some/other/path … )
set new_PATH = ( $new_PATH /more )
set path = $new_PATH
または直接
set path = ( /some/path /some/other/path … )
答え3
tcsh は PATH 環境変数を次のように定義します。
setenv PATH /path
次のように変数に追加します。
set PATH ($PATH /add/path/here /another/here)
環境変数を自分に渡す場合は、現在設定されている場所に追加するだけです。
環境変数を設定するのがどれほど簡単かを判断してください。スクリプト化された理由はありません。それ一つ変数を設定するコマンドです。
OP注:設定する必要がある変数を設定する最後の行ですset PATH ($PATH <then issue sed>
。