我已经写了一个bash脚本foo.sh
#!/usr/bin/env bash echo "starting the script";
我想在我的远程服务器上执行它。我尝试了ssh user@remote-addr < test.sh,它起作用了。
ssh user@remote-addr < test.sh
之后,我像这样更改了test.sh文件
#!/usr/bin/env bash echo "starting the script"; echo $1;
现在,我想传递一个本地参数以与我的脚本一起执行,但是当我键入ssh user@remote-addr < test.sh testparam它时会返回一个错误。
ssh user@remote-addr < test.sh testparam
如何通过脚本传递参数?
使用该-s选项,该选项强制bash(或任何POSIX兼容外壳程序)从标准输入而不是从第一个位置参数命名的文件中读取其命令。而是将所有参数都视为脚本的参数。
-s
bash
ssh user@remote-addr 'bash -s arg' < test.sh