![有没有封装while+shift...的命令?](https://linux22.com/image/202880/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%B0%81%E8%A3%85while%2Bshift...%E7%9A%84%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我的问题涉及编写一个可能与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