如何在Shell脚本中获取命令的打印信息

时间:2010-09-03 18:29:37

标签: scripting shell

我想在shell脚本中执行命令。

如果成功与否,此命令将返回0或非0。

如果成功,它会打印一些东西。

现在我需要shell脚本中的打印内容。我怎么能这样做?

我知道我可能会重定向到一个文件然后读取该文件。有没有办法直接将它重定向到变量?

非常感谢您提供的信息。

2 个答案:

答案 0 :(得分:4)

您可以使用$(...)运算符将命令的输出捕获为字符串。您可能还看到了较旧的反引号`...`语法,它可以执行相同的操作。

output=$(command)
output=`command`

echo "$output"

命令替换

  

命令替换允许输出命令来替换命令名称。有两种形式:

$(command)
     

`command`
     

Bash通过执行命令并使用命令的标准输出替换命令替换来执行扩展,并删除任何尾随换行符。嵌入的换行不会被删除,但在分词时可能会被删除。命令替换$(cat file)可以替换为等效但更快$(< file)

     

当使用旧式反引号替换形式时,反斜杠保留其字面含义,除非后跟$`\。第一个不带反斜杠的反引号会终止命令替换。使用$(command)表单时,括号内的所有字符组成命令;没有人受到特别对待。

     

命令替换可以嵌套。要在使用反引号形式时进行嵌套,请使用反斜杠转义内部反引号。

     

如果替换出现在双引号内,则不会对结果执行分词和路径名扩展。

答案 1 :(得分:2)

var=`command`

反引号执行命令并返回结果。