在一行命令列中執行多行命令
當使用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中文網其他相關文章!