~/echo.sh
假设我在远程服务器上有一个包含以下内容的脚本example.com
:
#!/usr/bin/env bash
echo "Arg 1: $1"
echo "Arg 2: $2"
echo "Arg 3: $3"
echo "Arg 4: $4"
现在,在我的本地机器上,我有另一个脚本,remote-echo.sh
其内容如下:
#!/usr/bin/env bash
ssh example.com "~/echo.sh $*"
这个想法是用户应该能够remote-echo.sh
使用任何参数运行并将这些参数转发到~/echo.sh
远程服务器上。
不幸的是,这不起作用:
$ ./remote-echo.sh "arg with space" "argwith\"quote" "arg3"
bash: -c: line 0: unexpected EOF while looking for matching `"'
bash: -c: line 1: syntax error: unexpected end of file
我该如何解决?我已经尝试过使用$@
而不是$*
,但这对结果根本没有任何影响。