【发布时间】:2020-01-20 02:11:32
【问题描述】:
我想将数组传递给远程计算机上的脚本。我为此使用SSH。我尝试了以下代码,但我收到一条错误消息,提示该参数不可用。
ssh -i location/to/keyfile -o StrictHostKeyChecking=no -T ubuntu@18.220.20.50 ./script.sh -m 1G -s 0 -d 120 -w 60 -j 512M -k 512M -l 515M -b "${array_1[*]}" -u "${array_2[*]}"
这里${array_1} 和${array_2} 是索引数组。
【问题讨论】:
-
您的问题也有类似的讨论。请看这个answer
-
我认为您遇到了麻烦,因为命令由本地 shell 解析(并应用和删除引号),然后发送到远程计算机再次进行解析。但要提出解决方案,我需要了解更多:数组的内容是什么(即它们是否包含可能使解析复杂化的空格和/或标点符号),以及它们应该如何传递给脚本(看起来您正在尝试将所有混合在一起的值作为单个脚本参数传递,对吗?)。
-
@GordonDavisson 我在两个数组中都有几个数值。如果我转到远程计算机然后运行相同的命令,它就可以正常工作。是的,我正在尝试将所有值作为单个参数传递。
-
@jww 我认为这不是很接近 - 另一个问题与获取包含换行符的字符串有关,远程shell将其视为单词序列,但这个问题是关于让远程 shell 将数组的条目视为单个字符串。