2013-02-06 178 views
0

我正在從Python運行bash腳本。我的IDE是PyDev的Eclipse。我已經安裝了一個軟件,它有一個bash命令bull2flux,我想在我的bash腳本中運行。 bull2flux通常像這樣運行:從Python運行的bash腳本運行bash命令時遇到麻煩

bull2flux someFile > outFile 

的問題是從我的Python腳本運行時,它的時候它是在終端直接調用,這工作得很好,但不是。我收到錯誤bull2flux: command not found。我已經嘗試從終端運行我的軟件的編譯版本,但同樣的錯誤發生。這是Eclipse的問題嗎?我必須以某種方式獲取命令嗎? bull2flux在我.bashrc文件來源是這樣的:

source path/to/software/bin/init.sh /dev/null 

附加信息:這是我如何運行它在我的bash腳本:

for file in ${folder_bml_files}/* 
do 
    #Other stuff here 
    bulledFile="bulltmp" 
    bull2flux ${file} > ${bulledFile} 
    #Other stuff here 
done 
+1

嘗試使用腳本/程序的完整路徑進行調用。 –

+0

如果二進制文件放在所有用戶的相同位置,這可能會有效。我知道這個特定的軟件(以及二進制文件)已經安裝在不同用戶的不同位置,因此在這種情況下最好在'.bashrc'文件中提供。 –

回答

0

我假設bull2flux可執行文件不在路徑,同時您的腳本正在執行。嘗試使用其完整路徑或在調用腳本之前更新PATH變量。

編輯:如果bull2flux只是一個shell函數(不是可執行文件),您可能需要從腳本中獲取定義的shell腳本。請嘗試將線

source path/to/software/bin/init.sh /dev/null

從你的.bashrc到自己的shell腳本。

+0

將二進制文件添加到PATH變量可以正常工作。看起來,'source path/to/software/bin/init.sh/dev/null'與此不同,即使它也設置了'bull2flux'來在終端中使用。謝謝你指出我的方向。 –