2015-06-08 86 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 

在遠程