将命令的输出设置为变量

将命令的输出设置为变量

如何将 的输出放入head -15 textfile.txt变量以在如下命令$X中使用它:if

 if $X = 'disabled' then

答案1

x="$(head -15 testfile.txt)"
if [ "$x" = disabled ]
then
    echo "We are disabled"
fi

通常,任何时候您想要将命令的输出捕获到 shell 变量中,请使用以下形式: variable="$(command args ...)"。该variable=部分是作业。这$(...)部分是命令替换。

另请注意,shell 不执行if表单中的语句if $X = 'disabled'。 shell 期望后面有一个命令,if并且 shell 将评估该命令的返回码。在上面的例子中,我运行的test命令可以写为test ...[ ... ]

许多人认为最佳实践是在 shell 脚本中使用小写变量。这是因为系统定义的变量是大写的,您不想意外覆盖它。另一方面,没有调用系统变量,X因此这不是真正的问题。

相关内容