有没有封装while+shift...的命令?

有没有封装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)
(酒吧)
(qux)

答案1

如果您想使用 执行此操作xargs,请告诉它一次处理一个单词的输入:

xargs -n 1 ./do_it.sh <<EOF
foo
bar
qux
EOF

但是已经有一个 shell 构造可以一次处理一个命令行参数,即for循环:

for i; do echo "($i)"; done

相关内容