使用命令值Bash设置变量

时间:2011-11-07 09:22:06

标签: bash variables

        #echo $LINE |cut -f"${arg}" -d' '
    pom=$LINE |cut -f"${arg}" -d' '

我有这两条路。首先是工作,但第二个不是。我想变量得到这个命令的值,因为我想要像字符串一样使用这个值。

3 个答案:

答案 0 :(得分:3)

您需要运行第一行,然后将返回的值赋给变量。你可以使用反引号内的命令来执行此操作,如下所示:

pom=`echo $LINE |cut -f"${arg}" -d' '`

第二行不起作用的原因是因为$LINE中的whats很可能不是有效命令,而管道从命令中获取输出,这就是为什么需要echo来输出内容$LINE

答案 1 :(得分:2)

不建议使用这种代码:

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=命令`。建议使用foo = $(命令)语法。$()内的反斜杠处理不那么令人惊讶,$()更容易嵌套。请参阅{{3} }

答案 2 :(得分:1)

如果LINE中没有空字段(即没有重复的空格),你也可以使用纯bash:

ITEMS=($LINE)
pom=${ITEMS[arg]}

请注意,在这种情况下,$ arg为零,因此您可能需要使用[arg-1]。