#echo $LINE |cut -f"${arg}" -d' '
pom=$LINE |cut -f"${arg}" -d' '
我有这条两条线。首先是工作,但第二个没有。我想变量得到这个命令的值因为我想使用这个值就像字符串。带命令值的Bash设置变量
#echo $LINE |cut -f"${arg}" -d' '
pom=$LINE |cut -f"${arg}" -d' '
我有这条两条线。首先是工作,但第二个没有。我想变量得到这个命令的值因为我想使用这个值就像字符串。带命令值的Bash设置变量
您需要运行第一行,然后将返回的值赋给变量。为此,您可以反引号里面的命令,就像这样:
pom=`echo $LINE |cut -f"${arg}" -d' '`
第二行不工作的原因,是因为什么在$LINE
很可能不是一个有效的命令,和管道需要从命令,其输出这就是为什么您需要echo
才能输出$LINE
的内容。
如果在LINE没有空字段(即没有连续的空格),你也可以使用纯庆典:
ITEMS=($LINE)
pom=${ITEMS[arg]}
注意$ arg是基于在这种情况下为零,所以你可能需要使用[ARG-1]。
这种代码气馁:
pom=`echo $LINE |cut -f"${arg}" -d' '`
赞成:。
pom=$(echo "$LINE" | cut -f"${arg}" -d' ')
反引号() is used in the old-style command substitution, e.g. foo=
command`的富= $(命令)语法建议,而不是反斜杠处理在$()内不会令人惊讶,并且$()更容易嵌套。请参阅http://mywiki.wooledge.org/BashFAQ/082
thx :)这是结束我的脚本的最后一件事:) –