python - 如何转义与 python 关键字匹配的 bash 关键字?

标签 python bash command-line escaping keyword

示例 - 任何 bash 关键字(例如 elsein)也会导致这种情况:

$ python -c 'import sys;for p in sys.path:print p'
  File "<string>", line 1
    import sys;for p in sys.path:print p
                 ^
SyntaxError: invalid syntax

双引号不能解决问题。

最佳答案

这与 for 是 Bash 关键字这一事实无关;就是这样

import sys;for p in sys.path:print p

不是有效的 Python 语法。如果您不带任何参数运行 python 然后在提示符下键入它,您会得到同样的错误。

您可以通过添加换行符来修复它:

import sys
for p in sys.path:print p

你可以在你的 Bash 命令中这样写:

python -c ' import sys
            for p in sys.path:print p
          '

或者这个:

python -c $'import sys\nfor p in sys.path:print p'

(其中 $'...' 是一种 Bash 语法,允许在字符串中使用类似 C 的转义序列,例如 \n 用于换行)。

关于python - 如何转义与 python 关键字匹配的 bash 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14720404/

相关文章:

python - 两个二维数组的 np.dot

python - 如何在文件更改时自动重新加载 Django?

java - Gradle 测试,详细运行?

amazon-web-services - 使用 aws-cli 从命令行创建 Route53 记录

python - 新数组的总大小必须不变

来自 "Pro Coder"示例的 Python 二叉搜索树

string - 使用 find 在 bash 中操作字符串(文件扩展名)

reactjs - 如何在 React 项目中自动创建 Sentry 版本并将源映射上传到 Sentry?

linux - Bash 脚本不会在 Centos 8 中作为 cron.hourly 作业运行

python - <这时候出乎意料