tcshのawkで設定

tcshのawkで設定

awkで1行に環境変数を設定しようとしています。

$ <source command> awk '/inst/ { n = split($0,a,"/"); cmd = "setenv " a[n-1] "_ver" $0; system(cmd) }'

しかし、私が得た結果は「sh:setenv:コマンドが見つかりません」です。

ベストアンサー1

setenvcsh専用のコマンドですが、代わりにBourneシェル()を介してsystem()引数を実行します。/bin/shcshexport VARIABLE=value

しかし、このようにしても効果はありません。system()新しいシェルを起動し、そのシェルでコマンドを実行します。コマンドが終了すると、シェルとその環境が消えます。したがって、設定した環境変数はすぐに消えます。

あなたがしなければならないことawkは、実行して出力するコマンドのリストを生成することですcsh(実行しようとしないでください)。その後、awk読み取り出力を呼び出すシェルを作成してawk実行する必要があります。

eval `the awk command`

おすすめ記事