我的问题涉及编写一个可能与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)
(酒吧)
(qux)
答案1
如果您想使用 执行此操作xargs
,请告诉它一次处理一个单词的输入:
xargs -n 1 ./do_it.sh <<EOF
foo
bar
qux
EOF
但是已经有一个 shell 构造可以一次处理一个命令行参数,即for
循环:
for i; do echo "($i)"; done