2010-08-16 62 views
1

考慮這個設置和文件夾結構:由命令行上的MAC/Linux的調用python腳本 - 傳遞參數

c:\foo 
     \bin\foo.bat 
     \lib\foo.py 

我已經foo.bat路徑添加到我的環境路徑,這樣我就可以從任何地方通過調用它在一些參數:

c:/>foo.bat -v 

foo.bat包含此代碼:

@ECHO OFF 
"c:\foo\lib\foo.py" %1 %2 %3 %4 %5 %6 %7 %8 %9 

這工作正常Windows操作系統。

現在我想能夠在Mac或Linux中做同樣的事情。

如何創建這個可執行文件,它將調用腳本lib \ foo.py,傳遞一些參數?

感謝

[解決方法]

感謝球員,你的回答讓我結束了這個腳本,它按預期工作:

在\富\ BIN \富

文件

#!/usr/bin/env bash 
python /usr/local/foo/lib/foo.py $* 

回答

2

你沒有明確地說出你選擇的殼是什麼S,但假設它是GNU的bash:

#!/usr/bin/env bash 
/path/to/lib/foo.py $*

注意,您的shell腳本和foo.py需要有執行位設置來運行這種方式(即只有

chmod +x /path/to/your/script /path/to/lib/foo.py
距離)。

+0

謝謝Emanuele。這真的有幫助,因爲我不知道如何通過這些論點。 – Bach 2010-08-16 11:48:55

6

你可以叫Python腳本直接在Mac/Linux上,只要確保把你的Python解釋器在第一行,例如文件foo:

#!/usr/bin/python 
if __name__ == "__main__": 
    print 'bar' 

運行該文件調用它直接形成你的當前目錄使用./foo

,如果你想訪問是否來自世界各地的你可以把它放在/usr/local/bin,例如,只要確保該文件是可執行文件(chmod +x foo)。

+0

謝謝deif。唯一的問題是我不希望用戶直接調用腳本,因爲我將所有可執行文件保存在bin文件夾中,而腳本位於lib文件夾中,該文件夾對該文件夾中的其他庫/腳本有相對引用。 – Bach 2010-08-16 11:47:45

相關問題