这是一个谜:谁能解释为什么cd
当输出被重定向到管道时失败?
例如:
james@machine:~$ cd /tmp # fine, no problem
james@machine:~$ cd /tmp | grep 'foo' # doesn't work
james@machine:~$ cd /tmp | tee -a output.log # doesn't work
james@machine:~$ cd /tmp >out.log # does work
在 OSX、Ubuntu 和 RHEL 上验证。
有任何想法吗?
编辑:我正在输出的管道似乎很奇怪cd
?原因是它来自一个函数,该函数用日志条目包装任意 shell 命令并处理输出。