我想在shell脚本中执行命令。
如果成功与否,此命令将返回0或非0。
如果成功,它会打印一些东西。
现在我需要shell脚本中的打印内容。我怎么能这样做?
我知道我可能会重定向到一个文件然后读取该文件。有没有办法直接将它重定向到变量?
非常感谢您提供的信息。
答案 0 :(得分:4)
您可以使用$(...)
运算符将命令的输出捕获为字符串。您可能还看到了较旧的反引号`...`
语法,它可以执行相同的操作。
output=$(command)
output=`command`
echo "$output"
命令替换允许输出命令来替换命令名称。有两种形式:
$(command)
或
`command`
Bash通过执行命令并使用命令的标准输出替换命令替换来执行扩展,并删除任何尾随换行符。嵌入的换行不会被删除,但在分词时可能会被删除。命令替换
$(cat file)
可以替换为等效但更快$(< file)
。当使用旧式反引号替换形式时,反斜杠保留其字面含义,除非后跟
$
,`
或\
。第一个不带反斜杠的反引号会终止命令替换。使用$(command)
表单时,括号内的所有字符组成命令;没有人受到特别对待。命令替换可以嵌套。要在使用反引号形式时进行嵌套,请使用反斜杠转义内部反引号。
如果替换出现在双引号内,则不会对结果执行分词和路径名扩展。
答案 1 :(得分:2)
var=`command`
反引号执行命令并返回结果。