1

Есть ли способ передать аргументы через канал на Bash?

что-то вроде:

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

Строка выше создаст каталоги ./value1/value2

Если это невозможно, я бы принял предложения.

Любая помощь приветствуется.

2 ответа2

2

Следующие работы в 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 чтобы показать эффект.)

1

Как насчет

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .