python - 如何将 python -c "code here"与换行符一起使用?

标签 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        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/

相关文章:

linux - 只需键入其名称即可执行的 Shell 脚本

windows - 如何在 Windows 上设置 PhoneGap

windows - 如何在 MS Windows 中更改 "local system"帐户的 %PATH% 值?

python - 对于 Python2 到 Python3 的代码转换,哪个版本的 Python 和 Django 最适合?

python - 当参数有时可以为NULL时如何参数化SQL查询?

python - Keras:大型单热编码:binary_crossentropy 或 categorical_crossentropy

linux - bash 中的对话框没有正确获取变量

command-line - xargs 不识别 bash 别名

windows - 将 ERRORLEVEL 重置为零的最简单方法是什么?

python - 使用 python 而不是 flask run 运行 flask 应用程序