通过ssh将变量传递给shell脚本

时间:2017-06-09 14:07:53

标签: bash shell ssh

如何通过ssh向远程shell创建$ 1和$ 2变量。以下是样本,

#!/bin/bash
user_name="${1}"
shift
user_password="${1}"
shift
tenant_name="${1}"
realscript="/IDM_ARTIFACTS/reset.sh"
ssh -qT oracle@slc05pzz.us.oracle.com bash -c "'echo $user_name'" < "$realscript" 

我能够回显$ user_name但无法在$ realscript中访问它。 无法使用HERE标签或单引号拨打电话&#39;&#39;因为脚本没有直接的命令。 我还有其他选择吗?请帮忙

1 个答案:

答案 0 :(得分:0)

我没有你的脚本,所以我在远程主机上放了一个测试:

$ realscript=/home/jack/show_params.sh

$ second="second one"

$ ssh TEST cat ${realscript}
#!/bin/bash
nParams=$#
echo There are ${nParams} parameters.
for (( ii=1; ii<=${nParams}; ii++ )); do
    echo "$1"
    shift
done

$ ssh TEST 'bash '${realscript}' "first one" '\'${second}\'
There are 2 parameters.
first one
second one

引用有点奇怪,但你可以传入带空格的参数变量。