如何使用python-c“;“此处代码”;有新线吗?
命令如何使用python-c“;“此处代码”;有新线吗?,python,bash,cmd,command-line,Python,Bash,Cmd,Command Line,命令 python -c "print('hello')" 在Linux(bash)和Windows(cmd.exe)中成功运行引号内的代码 但是如何使用python-c通过换行符传递代码? 例子:两者都有 python -c "for i in range(10): if i % 2 == 0: print('hello')" python -c "for i in range(10):\n if i % 2 == 0:\n
python -c "print('hello')"
在Linux(bash)和Windows(cmd.exe)中成功运行引号内的代码
但是如何使用python-c通过换行符传递代码?
例子:两者都有
python -c "for i in range(10): if i % 2 == 0: print('hello')"
python -c "for i in range(10):\n if i % 2 == 0:\n print('hello')"
失败
示例用例:我需要发送一个SSH命令(使用paramiko)在远程服务器上执行一个简短的Python代码,因此我需要传递一个命令,如
ssh.exec_命令('python-c“…”)
您可以使用bash的字符串语法来获取换行符:
python -c $'for i in range(10):\n if i % 2 == 0:\n print("hello")'
(我在这里使用单空格缩进)
对于windows,您确实应该使用powershell,它的新行是`n
:
python -c "for i in range(10):`n if i % 2 == 0:`n print('hello')"
在cmd.exe中,您似乎可以使用
^
来转义换行符,但是我目前无法测试这一点,所以您应该这样做。一种方法是使用exec()
,这使得字符串可以执行。它看起来很糟糕,但它确实有效
python -c "exec(\"for i in range(10):\n if i % 2 == 0:\n print('hello')\")"
您可以使用
bash
“herdoc”(也可以使用ksh
和POSIX shell):
python在不使用-c
的情况下,值得一提的是,如果使用Bash
,您可以通过管道将回显的代码直接传输到python
echo -e 'for i in range(10):\n if i % 2 == 0:\n print("hello")' | python
遵循Aplet123的引导并使用单空格缩进。您可以在中使用$'foo bar'
字符串bash@Basj也许考虑更新你的问题,以便更好地代表你实际上想要做的事情。
echo -e 'for i in range(10):\n if i % 2 == 0:\n print("hello")' | python