【问题标题】:Passing multiline arguments to ssh in bash?在bash中将多行参数传递给ssh?
【发布时间】:2013-08-23 08:30:18
【问题描述】:

我想将以下参数传递给 bash 脚本:

ssh -t $slaveAddr "chmod a+rwx newSlaveInstallation.sh; 
echo 'running the installation script....';
./newSlaveInstallation.sh $USERNAME $NEW_REPLICATION_VAL "$slaveList"; 
exit"

username 是一个用户名,如“user”,new replication val 是一个数字,slavelist 是一个新行分隔的 IP 地址列表,如“1.2.3.4 derp\n 1.2.3.5 derpp” 但是,一旦我通过将这三个参数放入 ssh 中,对于 slaveList,它只考虑 IP 地址,而不考虑新行分隔值的整个字符串。换句话说,如果在脚本中,我回显 slaveList,它会给我“1.2.3.4” 是否有任何特殊格式可以传递字符串的整个值?谢谢!

【问题讨论】:

  • 转义双引号。

标签: bash shell ssh


【解决方案1】:

您需要转义第一个和最后一个中的双引号。否则命令将被截断。

ssh -t "$slaveAddr" "chmod a+rwx newSlaveInstallation.sh; 
echo 'running the installation script....';
./newSlaveInstallation.sh $USERNAME $NEW_REPLICATION_VAL \"$slaveList\"; 
exit"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-18
    • 2012-04-21
    • 2023-01-21
    • 2014-08-18
    • 2021-10-05
    • 1970-01-01
    • 2018-05-22
    相关资源
    最近更新 更多