有没有办法在 Bash 上通过管道传递参数?

有没有办法在 Bash 上通过管道传递参数?

有没有办法通过 Bash 上的管道传递参数?

就像是:

echo value1 value2 | mkdir -p ./$1/$2

上面这一行将创建目录 ./value1/value2

如果这不可能的话我会接受建议。

任何帮助都将受到赞赏。

答案1

以下在 Ubuntu 中有效:

echo -e value1\\nvalue2|echo mkdir -p ./`line`/`line`

我无法保证所有bash实现都会按从左到右的顺序读取行。

或者:

echo value1 value2|( read p1 p2; echo mkdir -p ./$p1/$p2 )

这适用于所有bash实现,但如果任一值包含任何空白,则需要详细说明。

(我已经使用过了,echo mkdir效果很明显。)

答案2

怎么样

echo v1 v2 | awk '{print "./"$1"/"$2}' | xargs mkdir -p

相关内容