
私の質問は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)
答え1
:を使用してこれを行うには、xargs
一度に1ワードずつ入力を処理するように指示します。
xargs -n 1 ./do_it.sh <<EOF
foo
bar
qux
EOF
ただし、一度に1つのコマンドライン引数、つまりループを処理するシェル構成がすでにありますfor
。
for i; do echo "($i)"; done