这可能是一个非常愚蠢的问题;例如,在bash脚本中,给定以下输出;
awk '{print $7}' temp它给出了0.54546
我想把它赋给一个变量,所以我尝试了:
read ENE <<< $(awk '{print $7}' temp)但我得到了
Syntax error: redirection unexpected你能告诉我为什么吗?做这个作业最简单的方法是什么?
谢谢
发布于 2010-03-16 21:35:17
你的语法应该是
read ENE <<<$(awk '{print $1}' file)您也可以直接赋值
ENE=$(awk '{print $7}' temp)您还可以使用shell
$ var=$(< temp)
$ set -- $var
$ echo $7或者您可以将其读入数组
$ declare -a array
$ read -a array <<<$(<file)
$ echo ${array[6]}发布于 2010-03-16 21:33:07
您可以按如下方式进行命令替换:
ENE=$(awk '{print $7}' temp)或
ENE=`awk '{print $7}' temp`这将为变量ENE赋值0.54546
发布于 2010-03-17 01:53:15
一般来说,Bash对空格有点敏感(需要它们在某些地方,如果添加到其他地方就会中断),在我看来这太糟糕了。只需记住等号的两边不应该有空格,美元符号后面不应该有空格,括号里应该有空格(像这样)(不像这样)。
嵌套和$( command )是一回事,但是$(这个版本可以是$( embedded in strings. )),而“这个版本可以是embedded in strings.”
https://stackoverflow.com/questions/2454660
复制相似问题