我有一個駐留在遠程服務器上的版本控制下的python腳本,我想從我的本地shell執行它。在本地執行一個遠程python腳本,其他參數
我知道curl https://remote.path/script.py | python
將工作(as confirmed here)時,有沒有更多的參數。
的問題是,我無法弄清楚如何在額外的命令行參數傳遞,如python script.py arg1 arg2 arg3
?
我認出這是可能不是最安全的做法,但劇本是相當良性
我有一個駐留在遠程服務器上的版本控制下的python腳本,我想從我的本地shell執行它。在本地執行一個遠程python腳本,其他參數
我知道curl https://remote.path/script.py | python
將工作(as confirmed here)時,有沒有更多的參數。
的問題是,我無法弄清楚如何在額外的命令行參數傳遞,如python script.py arg1 arg2 arg3
?
我認出這是可能不是最安全的做法,但劇本是相當良性
如果檢查manual page,你會看到python
命令採用無論是腳本還是字符-
。參數-
而不是腳本用於告訴Python命令腳本應該從標準輸入讀取。因此,使用所有其他參數都被認爲是腳本的參數。
使用
$ curl https://remote.path/script.py | python - arg1 arg2 arg3
man python
會回答你的問題。
python [ -B ] [ -d ] [ -E ] [ -h ] [ -i ] [ -m module-name ]
[ -O ] [ -OO ] [ -R ] [ -Q argument ] [ -s ] [ -S ] [ -t ] [ -u
]
[ -v ] [ -V ] [ -W argument ] [ -x ] [ -3 ] [ -? ]
[ -c command | script | - ] [ arguments ]
說:
curl https://remote.path/script.py | python - arg1 arg2 arg3
例子:
$ cat s
import sys
print sys.argv[1:]
$ cat s | python - arg1 arg2 arg3
['arg1', 'arg2', 'arg3']
很容易(不推薦),你可以使用sys.argv
在文件 進口SYS
正好趕上他們在Pythonprint sys.argv[1]
在終端
python myfile.py foo
foo
如果你
print sys.argv[1:]
至於另一響應建議,你會得到
["foo"]
您使用'argparse'或'optparse'什麼樣的? – Greg