Bash

命令替換與 I/O 重定向?

  • April 2, 2014

我想知道I/O 重定向命令替換之間的區別?

例如,當我想將which命令輸出重定向到cd命令(我知道它不是目錄)時,該cd命令不使用 which重定向。

例如which w3af | cd?我必須使用命令替換cd $( which w3af ),為什麼?

對於您引用的特定範例,您需要使用命令替換:

cd -P -- "$(dirname -- "$(which w3af)")"

原因很簡單,cd不通過STDIN. 它只接受參數。

此外,which command會產生文件而不是目錄的路徑。

這是測試命令是否接受的一種方法stdin。請注意,這並不詳盡:

% { wc ; cat ; } <<INTEST
   nope
INTEST

> 1 1 5

% { cd ; cat ; } <<INTEST
   nope
INTEST

> nope

引用自:https://unix.stackexchange.com/questions/122728