无法使用管道命令或重定向标准输出
在使用我们公司的一个程序的时候,无法利用管道命令或者重定向标准输出:
$ cloudvm shutdown xxx
cloudvm是公司自己写的一个程序名,正常情况下在输出中会有'running'这个单词
shutdown和xxx都是参数
正常运行是可以的,但是无法利用以下命令进行管道命令或者重定向:
$ cloudvm shutdown xxx | grep 'running'
(结果仍然只是cloudvm shutdown xxx的全部输出)
$ cloudvm shutdown xxx > aaa.txt
(结果仍然只是cloudvm shutdown xxx的全部输出,并且aaa.txt是空的)
请问这是怎么回事?
------解决方案--------------------
输出是标准出错的输出,要看到效果可以这样
$cloudvm shutdown xxx 2> aaa.txt && cat aaa.txt | grep 'running' && rm aaa.txt
------解决方案--------------------Assembly code
cloudvm shutdown xxx 2>&1 | grep 'running' && rm aaa.txt
------解决方案--------------------
flag=`cloudvm shutdown xxx 2>&1 | grep 'running' | wc -l`
if ["$flag" -gt 0]
then
echo "ok"
fi