有没有办法通过 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