我对 bash 还很陌生。我想调用位于远程 Linux 机器上的脚本,传递一些常规参数和一个数组。该数组包含可能带有空格的字符串元素。
我写了一个最小的例子:
在服务器端:copyFiles.sh
#!/bin/bash
msg=$1
msg2=$2
shift
shift
arr=("$@") # Rebuild the array with rest of arguments
for ((i = 0; i < ${#arr[@]}; i++))
do
echo $msg $msg2 "${arr[$i]}"
done
在主机端:
first="first"
second="second"
array=("arra y1" "array2" "array3")
plink -ssh username@hostname -pw mypwd -batch " bash scripts/copyFiles.sh $first $second "${array[@]}" "
输出:
first second arra
first second y1
first second array2
first second array3
我想要的是:
first second arra y1
first second array2
first second array3
谢谢
答案1
我认为您只需要使用\"
空格分隔的参数。您是否尝试过按以下方式转义带有空格的字符串:
"\"数组 y1\""
我认为它可能会解决你的问题。