Mehrzeilige Befehle in einer einzeiligen Befehlszeile ausführen
Wenn Sie die Python-Option -c zum Ausführen einer einzeiligen Schleife verwenden, Das Importieren eines Moduls vor der Schleife kann zu einem Syntaxfehler führen. Dieses Problem entsteht, weil die Befehlszeile den gesamten Befehl als eine einzige Codezeile behandelt.
Um diese Einschränkung zu überwinden, gibt es mehrere Ansätze:
Verwenden Echo:
<code class="bash">echo -e "import sys\nfor r in range(10): print 'rob'" | python</code>
Dieser Befehl verwendet Echo, um Zeilenumbrüche in die Befehlszeichenfolge einzufügen, die Python dann als mehrere Zeilen interpretiert.
Verwenden von Exec:
<code class="bash">python -c "exec(\"import sys\nfor r in range(10): print 'rob'\")"</code>
Dieser Ansatz verwendet die exec-Funktion, um einen String dynamisch als Python-Code auszuführen.
Verwenden von Subshells:
<code class="bash">(echo "import sys" ; echo "for r in range(10): print 'rob'") | python</code>
Dieser Befehl teilt den Befehl mithilfe von Subshells in mehrere Zeilen auf. Jede Zeile wird dann unabhängig ausgeführt.
Verwenden von Crasts Antwort:
<code class="bash">python3 -c "import sys ; for r in range(10) : print('rob')"</code>
Dieser Ansatz fügt ein Semikolon vor der for-Schleife hinzu, um dies anzuzeigen Die Importanweisung ist ein separater Befehl.
Antwort von SilentGhost verwenden:
<code class="bash">python3 -c "import sys ; x = [print('rob') for r in range(10)][0]"</code>
Dieser Ansatz verwendet Pythons Listenverständnissyntax, um die Schleife auszuführen und weisen Sie das erste Ergebnis x zu.
Das obige ist der detaillierte Inhalt vonWie führe ich mehrzeilige Befehle in einer einzeiligen Befehlszeile aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!