[英]capturing init script output in a variable
我试图将初始化脚本的输出捕获到一个变量中,但是在这种情况下,它不是很简单,因为初始化脚本正在使用log_daemon_msg和log_failure_msg。 为什么输出成功通过此管道:
service tomcat7 start | grep Tomcat
但是不是这个吗?
service tomcat7 start | read OUTPUT; echo $OUTPUT
在第二个示例中,$ OUTPUT的值是所有初始化脚本的列表,这不是我期望的。 同样,以下示例也会在/etc/init.d中列出所有内容:
OUTPUT=$(service tomcat7 start)
在第二个示例中, read
在子shell中设置OUTPUT
的值。 当管道结束时,子外壳程序退出,并且OUTPUT
的值丢失。 使用第三个示例。
service tomcat7 start |
while read OUTPUT
do
echo $OUTPUT
done
之所以可行,是因为命令的输出多于一行。 您需要多次读取。 因为命令发出了多行。
如果$ OUTPUT包含已扩展的特殊字符(用于文件名扩展),它可能已经可以工作,但似乎不起作用。 尝试echo "$OUTPUT"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.