当前位置: 技术问答>linux和unix
无法使用管道命令或重定向标准输出
来源: 互联网 发布时间:2017-01-28
本文导语: 在使用我们公司的一个程序的时候,无法利用管道命令或者重定向标准输出: $ cloudvm shutdown xxx cloudvm是公司自己写的一个程序名,正常情况下在输出中会有'running'这个单词 shutdown和xxx都是参数 正常运行是可以的...
在使用我们公司的一个程序的时候,无法利用管道命令或者重定向标准输出:
$ 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
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
$cloudvm shutdown xxx 2> aaa.txt && cat aaa.txt | grep 'running' && rm aaa.txt
|
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
if ["$flag" -gt 0]
then
echo "ok"
fi