我有一个python脚本驻留在远程服务器上,在版本控制下,我想从我的本地shell执行它。
我知道curl https://remote.path/script.py | python
可以正常工作(as confirmed here)没有其他参数。
问题是,我无法弄清楚如何传入额外的命令行参数,例如: python script.py arg1 arg2 arg3
?
我知道这可能不是最安全的做法,但脚本非常温和。
答案 0 :(得分:2)
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']
答案 1 :(得分:2)
如果您检查manual page,您会看到python
命令采用脚本或字符-
。 -
参数而不是脚本用于告诉Python命令应该从标准输入读取脚本。所以使用所有其他参数都知道是脚本的参数。
像
一样使用$ curl https://remote.path/script.py | python - arg1 arg2 arg3
答案 2 :(得分:0)
非常容易(不推荐)你可以使用sys.argv
在档案中 import sys
print sys.argv[1]
在终端
python myfile.py foo
foo
如果你这样做
print sys.argv[1:]
另一个回复表明你会得到
["foo"]