我正在尝试将stdin重定向到服务器上的ssh,但脚本包含参数。
我在Makefile中执行此操作
./docker-machine ssh machine < scripts/provision-docker-images.sh "param1" "param2"
我尝试了很多选项,比如
< $(scripts/provision-docker-images.sh "param1" "param2")
<(scripts/provision-docker-images.sh "param1" "param2")
任何想法?
答案 0 :(得分:1)
将一个命令的标准输出连接到另一个命令的标准输入的机制是管道。 shell的运算符是|
。如果我理解正确
docker-machine ssh
将通过ssh连接将自己的标准输入转发到远程shell 然后你想要的是什么
scripts/provision-docker-images.sh "param1" "param2" \
| ./docker-machine ssh machine
(行拆分可选)。
相比之下,
<
用于重定向命令的标准输入以来自文件; $(...)
用于扩展命令的输出以形成部分另一个命令(类似于参数扩展); <(...)
用于创建文件名,从中可以读取命令的输出(即指定FIFO的读取结束)。