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它返回一个错误. 如何用脚本传递参数?

最佳答案
使用-s选项,它强制bash(或任何POSIX兼容的shell)从标准输入读取其命令,而不是从第一个位置参数指定的文件.所有参数都被视为脚本的参数.

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

转载注明原文:linux – 如何使用参数在远程服务器中执行本地脚本 - 代码日志