ввод из нескольких труб

ввод из нескольких труб

Как передать аргументы из нескольких каналов?

command1 | command2 outputOfcommand1 | command3 outputOfcommand1  outputOfcommand2

То, что я пытаюсь сделать более конкретно, это перечислить некоторые директории внутри контейнера, получить последний созданный файл и вытащить на хост-машину. Теперь я использую

sudo ls -t /var/snap/lxd/common/lxd/containers/con1/rootfs/home/usr1/Downloads | head -n 1 | xargs -I{} sudo mv /var/snap/lxd/common/lxd/containers/con1/rootfs/home/usr1/Downloads/{} .

. Путь здесь появлялся 2 раза, и я хочу уменьшить его до одного появления.

решение1

Похоже, вам нужна подстановка команд, а не конвейеры:

outputOfcommand1=$(command1)
outputOfcommand2=$(command2 "$outputOfcommand1")
command3 "$outputOfcommand1"  "$outputOfcommand2"

Связанный контент