命令
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_command('python -c "..."')
。
最佳答案
您可以使用 bash 的 $'foo'
获取换行符的字符串语法:
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 中,您似乎可以使用 ^
来转义换行符,但是我目前无法对此进行测试,因此您应该 refer to this question's answers .
关于python - 如何将 python -c "code here"与换行符一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64912479/