Ответы:
Вы можете использовать xargs
, с -t
флагом xargs
будет многословно и печатает команды, которые он выполняет:
./command1 | xargs -t -n1 command2
-n1
определяет максимальное количество аргументов, передаваемых на каждый вызов command2
. Это выполнит:
command2 word1
command2 word2
command2 word3
Если вы хотите, чтобы все в качестве аргумента одного вызова command2
использования, что:
./command1 | xargs -t command2
Это вызывает command2 с 3 аргументами:
command2 word1 word2 word3
Вы хотите «подстановку команд», то есть: вставить вывод одной команды в другой
command2 $(command1)
Традиционно это также может быть сделано как:
command2 `command1`
но это использование обычно не рекомендуется, так как вы не можете их вкладывать.
Например:
test.sh:
#!/bin/bash
echo a b c
test2.sh
#!/bin/bash
echo $2
ОБЛАСТЬ ПРИМЕНЕНИЯ:
./test2.sh $(./test.sh)
b
ARG_MAX
? У меня есть сценарий, когда я передаю содержимое файла в функцию.