将命令输出分配给shell变量

时间:2012-03-30 03:23:33

标签: linux tcsh

我正在尝试将剪切命令的输出分配给变量,但是我遇到了一个奇怪的问题。 我正在使用tcsh shell。

$echo $0
tcsh

这是我正在运行的命令:

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

现在文件非常简单(好吧,这不是我正在处理的文件,但是我把问题减少了。)

Test.txt的:

{ {corner

多数民众赞成!这是文件。如果我将文件更改为:

{ {corner}

语句有效,但“a”获得以下值:

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

因此我认为shell正在尝试执行{corner  作为一个命令,因为它缺少关闭支撑壳抱怨。有谁知道它为什么会出现这种行为?我的理解是它应该只将cut的输出分配给变量,但看起来像递归分配它! 新手

1 个答案:

答案 0 :(得分:6)

你必须用双引号括起来

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

同样适用于echo

等用途
echo "$a"

<强>输出

{corner