Minha pergunta diz respeito a escrever um script que provavelmente será usado em conjunto com o xargs
. Acho complicado combinar uma etapa de iteração e um loop, quando o segundo pode ser transformado em um comando. Tenho que estar reinventando a roda, então: o que existe nesse sentido?
while_do_it.sh
:
#! /bin/bash
while (( $# > 0 ))
do
echo "($1)"
shift
done
Pode ser dividido em
while.sh
#! /bin/bash
command="$1"
shift
while (( $# > 0 ))
do
"$command" "$1"
shift
done
do_it.sh
#! /bin/bash
echo "($1)"
Inscrição:
$ cat << EOF | xargs ./while.sh ./do_it.sh
foo
bar
qux
EOF
(Ctrl+D)
(foo)
(bar)
(qux)
Se você quiser fazer isso com
xargs
, diga a ele para processar sua entrada uma palavra de cada vez:Mas já existe uma construção de shell para processar argumentos de linha de comando um de cada vez, o
for
loop: