我创建了一个基本的bash脚本来运行另一个我无法控制的脚本。
第二个脚本将输出终端文本,例如我想用作其余脚本输入的错误代码。我很擅长用bash脚本编码。是否有内置函数可以读取刚输出到终端上的任何内容并将其设置为等于内部变量。
答案 0 :(得分:1)
您可以使用' |'正如beroe在评论中所建议的那样,这将得到第一个脚本的输出作为第二个脚本的输入,但它不会再显示在终端中。
另一种选择是' tee',它还可以将其作为脚本其余部分的输入,同时仍然将其显示在终端中。
答案 1 :(得分:0)
如果您想逐行阅读其他脚本的输出,可以执行
/path/to/other/script.sh 2>&1 | while IFS= read -r line; do
do_something_with "$line"
# ...
done
这里有很多关于bash的好消息:https://stackoverflow.com/tags/bash/info
答案 2 :(得分:0)
您正在询问command substitution,Bash和其他shell语言中的语法,可以捕获命令管道的标准输出。
例如,这将捕获date
的输出,然后将其作为较大字符串的一部分输出。
the_date=$(date)
echo "The current date is ${the_date}. What a time to be alive!"
您甚至可以跳过变量赋值,并将命令替换放在字符串中:
echo "The current date is $(date). What a time to be alive!"