2015-06-08 55 views
1

我有类似于下面的东西,用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\" 
+1

是否逃脱双引号帮助吗? \“$ FOO \” – ChristopherB

+0

是的,靠近它,我通过ssh命令发送它,所以第一个扩展被抓到了那一行,DOH! – hbogert

回答

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 

在远程