Как передать аргументы из нескольких каналов?
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"