我正在尝试执行一个参数中带有空格的远程脚本,但 ssh 却干扰了它们。
我在一台机器里得到了这个脚本
#!/bin/bash
CONT="1"
while test "$#" -gt 0
do
echo "P${CONT} [$1]"
P="$P P${CONT} [$1]"
shift
let "CONT++"
done
echo "DEBUG: `date` - SSH_ORIGINAL_COMMAND [$SSH_ORIGINAL_COMMAND]"
并产生以下输出:
./test_ssh.sh a 'b c' d
P1 [a]
P2 [b c]
P3 [d]
DEBUG: dj abr 19 14:03:52 CEST 2018 - SSH_ORIGINAL_COMMAND []
从远程机器我得到这个输出:
ssh root@olivera "test_ssh.sh a 'b c' d"
P1 [a]
P2 ['b]
P3 [c']
P4 [d]
DEBUG: dj abr 19 14:05:04 CEST 2018 - SSH_ORIGINAL_COMMAND [test_ssh.sh a 'b c' d]
我尝试了双引号和 scape 的几种组合,但都没有成功。
有什么提示吗?