如何从多个管道传递参数?
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"