使用其他参数在本地执行远程python脚本

时间:2013-09-27 05:54:38

标签: python bash shell curl

我有一个python脚本驻留在远程服务器上,在版本控制下,我想从我的本地shell执行它。

我知道curl https://remote.path/script.py | python可以正常工作(as confirmed here)没有其他参数。

问题是,我无法弄清楚如何传入额外的命令行参数,例如: python script.py arg1 arg2 arg3

我知道这可能不是最安全的做法,但脚本非常温和。

3 个答案:

答案 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

在python中捕获它们

在档案中     import sys

print sys.argv[1]

在终端

python myfile.py foo

foo

如果你这样做

print sys.argv[1:]

另一个回复表明你会得到

["foo"]