命令的grep输出有时有效。。有时不是吗? 请考虑以下事项: $ cd ~/.emacs.d/lisp/tabbar $ git pull Already up-to-date. $ git pull | grep -q "Already" ; echo $? 0
还和我在一起吗?现在:命令的grep输出有时有效。。有时不是吗? 请考虑以下事项: $ cd ~/.emacs.d/lisp/tabbar $ git pull Already up-to-date. $ git pull | grep -q "Already" ; echo $? 0,grep,gnu,Grep,Gnu,还和我在一起吗?现在: $ cd ~/src/emacs-tmp/trunk $ bzr up Tree is up to date at revision 108837 of branch /home/px/src/emacs-tmp/trunk $ bzr up | grep -q "Tree" ; echo $? Tree is up to date at revision 108837 of branch /home/px
$ cd ~/src/emacs-tmp/trunk
$ bzr up
Tree is up to date at revision 108837 of branch /home/px/src/emacs-tmp/trunk
$ bzr up | grep -q "Tree" ; echo $?
Tree is up to date at revision 108837 of branch /home/px/src/emacs-tmp/trunk
1
问题:
- 为什么在第一种情况下会找到grep“0”(返回码)以及 “1”(未找到)在第二个
- 为什么第一个(git pull)命令的输出是 什么时候隐藏起来
- 我认为您的“可见”命令是输出到stderr,而不是stdout。grep只在stdout中查找,除非使用2>&1重定向
因此,试试看
bzr up 2>&1 | grep -q "Tree" ; echo $?
我认为您的“可见”命令是输出到stderr的,而不是stdout。grep只在stdout中查找,除非使用2>&1重定向
因此,试试看
bzr up 2>&1 | grep -q "Tree" ; echo $?
看起来bzr正在向标准错误设备输出(
/dev/stderr
),而grep
仅检查标准输入。您可以通过尝试将stderr
重定向到stdin
来确认或否认此猜测:
bzr up 2>&1 | grep -q "Tree" ; echo $?
看起来bzr正在向标准错误设备输出(
/dev/stderr
),而grep
仅检查标准输入。您可以通过尝试将stderr
重定向到stdin
来确认或否认此猜测:
bzr up 2>&1 | grep -q "Tree" ; echo $?
- 为什么在第一种情况下返回grep“0”(已找到),在第二种情况下返回“1”(未找到)
- 为什么第一个(git pull)命令的输出在grepping时是隐藏的
- 为什么在第一种情况下返回grep“0”(已找到),在第二种情况下返回“1”(未找到)
- 为什么第一个(git pull)命令的输出在grepping时是隐藏的