2014-03-26 30 views
1

我想要一個將激活虛擬環境(在shell和cron中)的腳本,然後使用所有參數IN virtualenv中。嘗試激活virtualenv並執行其中的python腳本時出現Shell腳本語法錯誤

這是我現在有prod.sh:

#!/bin/bash 

. $VE_DIR/Production_VE/bin/activate 

python $0 "[email protected]" 

那我試試這個:

hostname:~$prod.sh myscript.py -c arg1 -fu 

我得到這個錯誤:

File "/home/username/prod.sh", line 3 
    . $VE_DIR/Production_VE/bin/activate 
    ^
SyntaxError: invalid syntax 

我嘗試切換到源:

#!/bin/bash 

source $VE_DIR/Production_VE/bin/activate 

python $0 "[email protected]" 

和錯誤改變了,但現在:

File "/home/username/prod.sh", line 3 
    source $VE_DIR/Production_VE/bin/activate 
     ^
SyntaxError: invalid syntax 

有關其他方面,我希望能夠在這兩個一個CentOS 6.5 VPS和Mac OS運行該腳本。

這張圖片有什麼問題?

謝謝!

回答

0

我剛剛創建類似於你的腳本,它運行良好。我認爲這真的很奇怪,你加了一個問題。但是當我看你的錯誤:

File "/home/username/prod.sh", line 3 
    source $VE_DIR/Production_VE/bin/activate 
     ^
SyntaxError: invalid syntax 

它看起來像一個Python錯誤,而不是一個bash錯誤。你錯誤的是,當你這樣做:

python $0 "[email protected]" 

你應該刪除$ 0,因爲它包含你的bash腳本的路徑。

python "[email protected]" 
+0

非常感謝,這就是訣竅! – HaPsantran

+0

確保你保留'「$ @」'的引號,非常重要。 '$ @'與''$ @''完全不同 - http://www.gnu.org/software/bash/manual/bashref.html#Special-Parameters –

+0

抱歉,我要編輯錯誤提交 –

相關問題