题
这里的一个益智游戏:任何人都可以解释为什么当输出被重定向到一个管cd
失败
E.g:
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命令不会派生的任何新的进程。
不隶属于 StackOverflow