awk '{print $7}' temp
它给出0.54546
我想把它变成一个变量,所以我试过了:
read ENE <<< $(awk '{print $7}' temp)
但我得到
Syntax error: redirection unexpected
你能告诉我为什么,以及做这项任务最简单的方法是什么?
由于
答案 0 :(得分:3)
您可以将命令替换为:
ENE=$(awk '{print $7}' temp)
或
ENE=`awk '{print $7}' temp`
这会将值0.54546
分配给变量ENE
答案 1 :(得分:2)
你的语法应该是
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]}
答案 2 :(得分:0)
一般来说,Bash对空间有点敏感(要求他们有些地方,如果他们被添加到其他地方就会破坏),在我看来太糟糕了。请记住,在等号的两边不应有空格,美元符号后应该没有空格,括号应该用空格(如此)(不是这样)。
`command`和$(command)是一回事,但是$(这个版本可以是$(嵌套))而“这个版本可以`嵌入字符串中。”