示例 - 任何 bash 关键字(例如else
or in
)也会导致:
$ 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
双引号不能解决它。
示例 - 任何 bash 关键字(例如else
or in
)也会导致:
$ 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 -c "exec(\"import sys;\\nfor p in sys.path:print p\")"
这是另一种方法....更直接一点
python -c "import sys; print '\n'.join(sys.path)"
如果分号和compound_stmt
关键字不相邻,它会起作用:
# instead of '; for'
python -c 'import sys; print [p for p in sys.path]'
或者
# instead of '; if'
python -c "x=1; print x if x>0 else ''"