2015-03-02 67 views
0

下面我有一個簡單的shell腳本:「readOnly的」和執行shell腳本時,沒有發現其他符號遠程

#!/bin/bash 
# Hadoop Clear 
readOnly hadoop = /opt/hadoop/bin/hadoop 
hadoop fs -rm -r/

當我運行在同一臺機器上的終端腳本,一切工作沒有錯誤。 現在,我想遠程調用這個腳本。所以從我的java程序,我做了ssh到服務器,並調用腳本爲: sh <full Path to script>

我得到一個錯誤說:

clearHadoop.sh: readOnly: not found 
clearHadoop.sh: hadoop not found 

任何想法,爲什麼出現這種情況?

+2

我首先在機器A上運行shell腳本。然後我在同一臺機器A上運行相同的腳本,但我從機器B調用腳本.A中有hadoop,readOnly是一個shell關鍵字,所以我不認爲這是問題 – Aneesh 2015-03-02 13:28:11

回答

1

readonly是bash關鍵字,而不是readOnly

這聽起來像是在shell init文件中添加了hadoop$PATH的路徑,該文件隻影響交互式會話(不會影響遠程會話)。

另外sh不是/bin/bash。如果你想bash使用bash而不是sh

+0

我需要在哪裏添加路徑在遠程會話中啓用它? – Aneesh 2015-03-02 13:43:51

+0

信息會有幫助,但我通過給hadoop完整路徑暫時解決了這個問題。 – Aneesh 2015-03-02 13:53:50

+1

@Aneesh你現在在哪裏添加它? Shell初始化文件有點複雜難以理解。關於他們在stackexchange網站上有幾個非常好的答案(但我現在很難找到他們)。 – 2015-03-02 16:24:03

1

您的readOnly系列中存在拼寫錯誤。至少我剛剛嘗試過的bash只是被人抱怨讀了O nly