0

これを行うにはもっと簡単な方法があると確信しているので、私はすべて聞いています。

sort -nrk 7 my_list.tsv | tail -n 1 | awk '{print("setenv INPUT_DIR `pwd`/"$1)}'

私の .tsv の最初の項目は、csh で環境変数として設定しようとしているファイル名 (ソート済み) です。プルパスも追加したいです。私はこれがうまくいくと思ったが...

sh: setenv: command not found

私はcshにいますが。awk システム機能で csh/tcsh を使用できますか?

J

4

1 に答える 1

0

「プルパスも追加するには」。??

ということですか

       echo "fileName" | awk '{printf("setenv '`pwd`'/%s\n", $1)}'

出力

       setenv INPUT_DIR /home/shellter/filename

sort ... | tail ..それはあなたの中心的な質問ではないように思われるので、私はあなたを置き換えました。

また、一重引用符により、逆引用符のコマンド置換が処理されないことに注意してください。一重引用符をオフにして、cmd-sub 値を取得し、一重引用符を再びオンにします。

これが意図したものでない場合は、質問を編集sort ... tail ...し、上記のように単純なエコー「文字列」に置き換えて、予想される出力を含めてください。現在取得している出力を含めることも役立ちます。

見出しの質問に答えるために、awk はほぼ確実に $SHELL 環境変数に保存されている値を使用しています。または、別の変数がある可能性があるので、 aset | grep /bin/shを実行してsetenv | grep /bin/sh、参照がどこに/bin/sh設定されているかを確認します。次に、それをどのように管理するかを決定します。

コードを実行すると、シェルが実行されたことを示す兆候がありません。私は得る

setenv INPUT_DIR `pwd`/file

しかし、私は ksh の下でコードを実行しています。テストに使用する csh がありません。しかし、特定のケースでは、それは問題ではありません。

IHTH

于 2013-04-11T02:36:30.847 に答える