在一行命令行中执行多行命令
当使用Python的-c选项执行一行循环时,在循环之前导入模块可能会导致语法错误。出现此问题的原因是命令行将整个命令视为一行代码。
要克服此限制,有多种方法:
使用Echo:
<code class="bash">echo -e "import sys\nfor r in range(10): print 'rob'" | python</code>
此命令使用 echo 在命令字符串中插入换行符,然后 Python 将其解释为多行。
使用 Exec:
<code class="bash">python -c "exec(\"import sys\nfor r in range(10): print 'rob'\")"</code>
此方法使用 exec 函数将字符串动态执行为 Python 代码。
使用 Subshell:
<code class="bash">(echo "import sys" ; echo "for r in range(10): print 'rob'") | python</code>
此命令使用子 shell 将命令拆分为多行。然后每行独立执行。
使用 Crast 的答案:
<code class="bash">python3 -c "import sys ; for r in range(10) : print('rob')"</code>
这种方法在 for 循环之前添加一个分号来指示import 语句是一个单独的命令。
使用 SilentGhost 的答案:
<code class="bash">python3 -c "import sys ; x = [print('rob') for r in range(10)][0]"</code>
这种方法使用 Python 的列表理解语法来执行循环并将第一个结果分配给 x.
以上是如何在一行命令行中执行多行命令?的详细内容。更多信息请关注PHP中文网其他相关文章!