Xargs
是否有一個命令封裝了 while+shift…?
我的問題與編寫可能與
xargs
. 我發現將迭代步驟和循環結合起來很麻煩,因為第二個可以變成命令。我必須重新發明輪子,所以:這方面存在什麼?
while_do_it.sh
:#! /bin/bash while (( $# > 0 )) do echo "($1)" shift done
可以分為
while.sh
#! /bin/bash command="$1" shift while (( $# > 0 )) do "$command" "$1" shift done
do_it.sh
#! /bin/bash echo "($1)"
應用:
$ cat << EOF | xargs ./while.sh ./do_it.sh foo bar qux EOF (Ctrl+D)
(foo)
(bar)
(qux)
如果您想使用 執行此操作
xargs
,請告訴它一次處理其輸入一個單詞:xargs -n 1 ./do_it.sh <<EOF foo bar qux EOF
但是已經有一個 shell 結構可以一次處理一個命令行參數,即
for
循環:for i; do echo "($i)"; done