2012-03-30 4 views
6

cutコマンドの出力を変数に代入しようとしていますが、私は奇妙な問題に遭遇しています。 私はtcshシェルを使用しています。コマンド出力をシェル変数に割り当てる

$echo $0 
tcsh 

これは私が実行しているコマンドです:

$set a=`cut -f2 -d' ' test.txt` 
Missing }. //This is the output I am getting 

今ファイルが本当簡単です(まあこれは私が働いていたが、私はこれまでの問題を低減したファイルではありません。)

Test.txtを:それ

{ {corner 

ザッツ!これがファイルです。

{ {corner} 

文の作品が、「」次の値を取得::私はこれまで、ファイルに変更した場合

$echo $a 
corner //Please note its not {corner} but corner 

をそこで私は、シェルがコマンドとして{corner を実行しようとし、そのため、されていることを考えます閉鎖中のシェルを紛失していると文句を言う。誰もがこの動作を示す理由を知っていますか?私は、カットの出力を変数に代入するだけで、再帰的に代入するように見えることを理解しています。 初心者

答えて

5

あなたは

set a="`cut -f2 -d' ' test.txt`" 

同じ二重引用符のまわりでそれをラップする必要があり、そのようなecho

echo "$a" 

出力などの用途に適用されるように動作しません

{corner 
+0

OPはそれを意図している。それは単に "Missing}"をaに割り当てます。 – Ketan

+0

これは機能しません! echo "$ a" echo $ aを試してみてください。しかし私はなぜこれをしなければならないのか混乱していますか? – Richeek

+0

私の悪い。私は$ aをエコーするときに二重引用符を見逃しました。 – Ketan