使用命令替换

使用命令替换

shell 变量号包含1 1 1 1 1由制表符分隔的。

我希望它只包含前 1 个。

我想

number= $(echo "$number"| cut -f 3 )

我收到错误“1:未找到命令”,并且数字的内容没有改变。

我究竟做错了什么?

答案1

假设是number制表符分隔,然后考虑:

number= $(echo "$number"| cut -f 3 )

的结果echo "$number"| cut -f 3是 其中的第三个元素numbers1。因此,shell 尝试执行:

number= 1

在此命令中,变量number暂时设置为空,并且 shell 尝试执行该命令1。由于没有名为 的命令1,shell 会发出错误消息:

bash: 1: command not found

这是 shell 试图告诉您它找不到名为 的命令1

解决方案是删除空格:

number=$(echo "$number"| cut -f 3 )

命令替换后,变为:

number=1

这将成功分配number为具有值1

答案2

尝试在“=”符号后不加空格。我的意思是,尝试一下

number=$(echo "$number"| cut -f 3 )

代替

number= $(echo "$number"| cut -f 3 )

相关内容