我想在远程服务器上执行python程序,而不创建脚本。远程服务器不允许我在文件系统上的任何位置创建任何文件。
python函数具有以下结构,尽管功能复杂得多
def test2():
print("test2")
def test_func():
test2()
print("test_func")
test_func()
是否可以直接从命令行执行此程序?
我已经尝试了这两种方法
在两种情况下我都出错。但是,没有用户定义功能的任何代码都可以使用第二种方法执行。是否可以在不创建本地脚本的情况下使上述代码正常工作?
答案 0 :(得分:2)
我找到了一种解决方案,也许会有所帮助,您可以使用EOF
$ python << EOF
> def test2():
> print("test2")
>
> def test_func():
> test2()
> print("test_func")
>
> test_func()
> EOF
# output
test2
test_func
答案 1 :(得分:1)
您仍然可以像第一种方法那样使用函数:
x=0
答案 2 :(得分:1)
如果您可以将python源存储在HTTP服务器上,并且wget
(或类似名称)已安装在远程主机上
$ wget -O - http://my.server.de/some/path/my_program.py | python
可能是实现目标的一种廉价方法。
另一种可能性,不涉及HTTP服务器,但是您需要在远程主机上使用scp
或ssh
$ scp my_host:a_python_file.py /dev/stdout | python
$ ssh my_host 'cat a_python_file.py' | python