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

gue*_*586 6 bash bash-scripting

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

就像是:

echo value1 value2 | mkdir -p ./$1/$2
Run Code Online (Sandbox Code Playgroud)

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

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

任何帮助表示赞赏。

小智 6

怎么样

echo v1 v2 | awk '{print "./"$1"/"$2}' | xargs mkdir -p
Run Code Online (Sandbox Code Playgroud)


AFH*_*AFH 5

以下在 Ubuntu 中有效:

echo -e value1\\nvalue2|echo mkdir -p ./`line`/`line`
Run Code Online (Sandbox Code Playgroud)

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

或者:

echo value1 value2|( read p1 p2; echo mkdir -p ./$p1/$p2 )
Run Code Online (Sandbox Code Playgroud)

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

(我曾经echo mkdir展示过效果。)