Есть ли способ передать аргументы через канал на Bash?
что-то вроде:
echo value1 value2 | mkdir -p ./$1/$2
Строка выше создаст каталоги ./value1/value2
Если это невозможно, я бы принял предложения.
Любая помощь приветствуется.
Есть ли способ передать аргументы через канал на Bash?
что-то вроде:
echo value1 value2 | mkdir -p ./$1/$2
Строка выше создаст каталоги ./value1/value2
Если это невозможно, я бы принял предложения.
Любая помощь приветствуется.
Следующие работы в Unbuntu:
echo -e value1\\nvalue2|echo mkdir -p ./`line`/`line`
Я не могу гарантировать, что все реализации bash
будут читать строки в порядке слева направо.
В качестве альтернативы:
echo value1 value2|( read p1 p2; echo mkdir -p ./$p1/$p2 )
Это будет работать со всеми реализациями bash
, но потребует доработки, если любое из значений содержит пробелы.
(Я использовал echo mkdir
чтобы показать эффект.)
Как насчет
echo v1 v2 | awk '{print "./"$1"/"$2}' | xargs mkdir -p