Pipe
管道與命令替換
使用我嘗試過的 linux 命令行和管道進行測試,
echo {1..3} | touch
但它不起作用。我用touch $(echo {1..3})
.為什麼我不能像第一個範例中那樣使用管道將 echo 生成的列表傳遞給 touch?
感謝 Steeldriver 的評論,它引導我找到了答案。
管道運算符僅在命令接受來自標準輸入的參數時才起作用,在這種情況下,像 touch 或 rm 這樣的命令不起作用,另一種解決方案是使用命令替換,如範例中所示
touch $(echo {1..3})
或者通過使用 xargs 將輸入從標準輸入轉換為命令的參數,因此可以做到
echo {1..3} | xargs touch
就如此容易