我试图将 cut 命令的输出分配给一个变量,但是我遇到了一个奇怪的问题。 我正在使用 tcsh 外壳。
$echo $0
tcsh
这是我正在运行的命令:
$set a=`cut -f2 -d' ' test.txt`
Missing }. //This is the output I am getting
现在文件真的很简单(好吧,这不是我正在处理的文件,但我将问题简化为这个。)
测试.txt:
{ {corner
就是这样!这是文件。如果我将文件更改为:
{ {corner}
语句有效,但“a”获得以下值:
$echo $a
corner //Please note its not {corner} but corner
因此我认为 shell 正在尝试执行 {corner
作为一个命令,因为它缺少右大括号 shell 提示。有谁知道为什么它会表现出这种行为?我的理解是它应该只将 cut 的输出分配给变量,但看起来它是递归分配的!
新手
最佳答案
必须用双引号括起来
set a="`cut -f2 -d' ' test.txt`"
同样适用于 echo
等用途
echo "$a"
输出
{corner
关于linux - 将命令输出分配给 shell 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9936598/