我有以下内容,一个shell脚本:
FOO="bar gum"
$ spark-submit --verbose --class SomeApp some.jar "$FOO"
然而,这会导致:
Main class:
SomeApp
Arguments:
bar
gum
我所期望的是“口香糖”的单一论点
/更新
这个问题非常麻烦
我真正拥有的是:
FOO="bar gum"
$ ssh host spark-submit --verbose --class SomeApp some.jar "$FOO"
这应该是:
FOO="bar gum"
$ ssh host spark-submit --verbose --class SomeApp some.jar \"$FOO\"
答案 0 :(得分:0)
通过ssh命令发送命令时,任何双引号都会被本地的当前shell解释。
假设您在遥控器上有一个简单的脚本print-first-arg.sh:
#!/bin/bash
echo $1
然后
$ ssh host print-first-arg.sh "hello world"
结果
$ ssh host print-first-arg.sh hello world
hello
在遥控器上。
使用:
$ ssh host echo \"hello world\"
,结果是:
$ ssh host print-first-arg.sh "hello world"
hello world
在遥控器上