将Python脚本传输到ssh,但首先执行其他bash命令

将Python脚本传输到ssh,但首先执行其他bash命令,python,bash,ssh,remote-execution,Python,Bash,Ssh,Remote Execution,在远程服务器上执行Python脚本的一种非常方便的方法是: 其中,-似乎是可选的 在以这种方式运行Python脚本之前,如何执行其他bash命令? 这不起作用: cat script.py | ssh user@address.com "cd ..; python -" # WRONG! 有趣的是,这会发送一个非确定性损坏的Python脚本版本,每次运行它时都会在不同的位置出现语法错误 您可以创建一个子壳: cat script.py | ssh user@address.com "(cd .

在远程服务器上执行Python脚本的一种非常方便的方法是:

其中,
-
似乎是可选的

在以这种方式运行Python脚本之前,如何执行其他bash命令?

这不起作用:

cat script.py | ssh user@address.com "cd ..; python -" # WRONG!

有趣的是,这会发送一个非确定性损坏的Python脚本版本,每次运行它时都会在不同的位置出现语法错误

您可以创建一个子壳:

cat script.py | ssh user@address.com "(cd ..; python -)"
或临时文件:

cat script.py | ssh user@address.com "tee >/tmp/tmp.py; cd ..; python /tmp/tmp.py; rm /tmp/tmp.py"

您可以创建一个子壳:

cat script.py | ssh user@address.com "(cd ..; python -)"
或临时文件:

cat script.py | ssh user@address.com "tee >/tmp/tmp.py; cd ..; python /tmp/tmp.py; rm /tmp/tmp.py"

您可以创建一个子壳:

cat script.py | ssh user@address.com "(cd ..; python -)"
或临时文件:

cat script.py | ssh user@address.com "tee >/tmp/tmp.py; cd ..; python /tmp/tmp.py; rm /tmp/tmp.py"

您可以创建一个子壳:

cat script.py | ssh user@address.com "(cd ..; python -)"
或临时文件:

cat script.py | ssh user@address.com "tee >/tmp/tmp.py; cd ..; python /tmp/tmp.py; rm /tmp/tmp.py"

谢谢,我不确定如何捕获stdin。谢谢,我不确定如何捕获stdin。谢谢,我不确定如何捕获stdin。谢谢,我不确定如何捕获stdin。提示:如果您使用此方法,使用
python-u
进行无缓冲输出,以便打印后立即显示stdout。损坏是否总是发生在前几行?@YatharthROCK我不记得了,抱歉。提示:如果使用此方法,使用
python-u
进行无缓冲输出,以便打印后立即显示stdout。损坏是否总是发生在前几行?@YatharthROCK我不记得了,抱歉。提示:如果使用此方法,使用
python-u
进行无缓冲输出,以便打印后立即显示stdout。损坏是否总是发生在前几行?@YatharthROCK我不记得了,抱歉。提示:如果使用此方法,使用
python-u
进行无缓冲输出,以便打印后立即显示标准输出。损坏是否总是发生在前几行?@YatharthROCK我不记得了,对不起。