如何将 的输出放入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
因此这不是真正的问题。