如何将bash命令的日志放在变量中?

时间:2018-02-19 21:07:22

标签: linux bash shell terminal

script-one.sh有以下内容:

sh script-two.sh
# I need a here a way to store the log generated by the script-two is a variable

script-two.sh在终端输入字符串'hello'。

1 个答案:

答案 0 :(得分:3)

只需使用$( )又称command substitution,所以:

x="$(sh script-two.sh)"
echo "$x"

如@Walter的评论所述,需要双引号

"双引号"每个包含空格/元字符和每个扩展的文字:"$var""$(command "$var")""${array[@]}""a & b"。使用'single quotes'代码或文字$'s: 'Costs $5 US'ssh host 'echo "$HOSTNAME"'。见
http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words

编辑:

如果你需要捕获标准输出(),那么我的命令就可以了。

如果您需要,那么:

x="$(sh script-two.sh 2>&1 >/dev/null)"

或者如果你想要两者,那么:

x="$(sh script-two.sh 2>&1)"