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'。
答案 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
如果你需要捕获标准输出(stdout),那么我的命令就可以了。
如果您需要stderr,那么:
x="$(sh script-two.sh 2>&1 >/dev/null)"
或者如果你想要两者,那么:
x="$(sh script-two.sh 2>&1)"