我想将以下参数传递给bash脚本:
ssh -t $slaveAddr "chmod a+rwx newSlaveInstallation.sh;
echo 'running the installation script....';
./newSlaveInstallation.sh $USERNAME $NEW_REPLICATION_VAL "$slaveList";
exit"
用户名是“user”之类的用户名,新复制val是一个数字,slavelist是新行分隔的IP地址列表,如“1.2.3.4 derp \ n 1.2.3.5 derpp”但是,一旦我通过将这三个参数转换为ssh,对于slaveList,它只考虑IP地址而不考虑整个新行分隔值的字符串。换句话说,如果在脚本中,我回显slaveList,它给我“1.2.3.4”是否有任何特殊格式传递字符串的整个值?谢谢!
答案 0 :(得分:4)
你需要在第一个和最后一个内部转义双引号。否则命令将被截断。
ssh -t "$slaveAddr" "chmod a+rwx newSlaveInstallation.sh;
echo 'running the installation script....';
./newSlaveInstallation.sh $USERNAME $NEW_REPLICATION_VAL \"$slaveList\";
exit"