日期:2014-05-16  浏览次数:20755 次

无法使用管道命令或重定向标准输出
在使用我们公司的一个程序的时候,无法利用管道命令或者重定向标准输出:
$ 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