一尘不染

如何使用参数在远程服务器中执行本地脚本

linux

我已经写了一个bash脚本foo.sh

#!/usr/bin/env bash
echo "starting the script";

我想在我的远程服务器上执行它。我尝试了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它时会返回一个错误。

如何通过脚本传递参数?


阅读 356

收藏
2020-06-07

共1个答案

一尘不染

使用该-s选项,该选项强制bash(或任何POSIX兼容外壳程序)从标准输入而不是从第一个位置参数命名的文件中读取其命令。而是将所有参数都视为脚本的参数。

ssh user@remote-addr 'bash -s arg' < test.sh
2020-06-07