使用管道时重新组合bash参数

时间:2017-01-13 10:03:51

标签: linux bash pipe

在重组bash参数的情况下可以使用什么方法, 例如:

echo "arg3 arg1 arg2" | ...

因此随机排序中的重组参数可以适用:

... | some_command -arg1=$3 -arg2=$1 -arg3=$2 --interpretator-arg=$0 --anoter-arg=$1$2$3

1 个答案:

答案 0 :(得分:1)

一种选择是使用read

echo "arg3 arg1 arg2" | { read -r a b c; some_command ...; }

现在您可以根据需要使用参数"$a""$b""$c"

我猜你的例子有点人为,但在这种情况下你可以避免使用管道:

{ read -r a b c; some_command ...; } <<< "arg3 arg1 arg2"

如果参数确实来自命令,那么您可以使用命令替换:

{ read -r a b c; some_command ...; } < <(command_producing_arguments)

请注意,如果命令组{ }全部写在一行上,则末尾的分号很重要。