kor*_*oll 6 shell bash io-redirection command-substitution
我想知道I/O 重定向和命令替换之间的区别?
例如,当我想将which命令输出重定向到cd命令(我知道它不是目录)时,该cd命令不使用 which重定向。
例如which w3af | cd?我必须使用命令替换cd $( which w3af ),为什么?
对于您引用的具体示例,您需要使用命令替换:
cd -P -- "$(dirname -- "$(which w3af)")"
Run Code Online (Sandbox Code Playgroud)
原因很简单,cd不通过STDIN. 它只接受参数。
此外,which command将生成文件路径而不是目录。