Ich versuche, eine Python-Datei schreiben, die Eingabe über die Befehlszeile und führt einige Aktionen. Die Eingabe besteht aus az, [,], (und). Ich machte Folgendes Programm nur zu prüfen, ob ich gehen könnte halten:ausführbare Python-Datei sys nicht akzeptieren '(' Zeichen
#!/usr/bin/env python
import sys
print str(sys.argv)
ich habe chmod +x program
und versuchte ./program qwerty (abc) [hi]
Aufruf und es zurückgegeben:
-bash: Syntaxfehler in der Nähe von unerwartetem Token `(‘
gibt es ein Art der Veränderung das Programm, so dass es Klammern in Argumenten akzeptiert?
Hinweis: Ich habe auch versucht, eckige Klammern vor Klammern zu setzen, und es wird der gleiche Fehler zurückgegeben.
'()' hat eine besondere Bedeutung zu Shell - es ruft den eingeschlossenen Befehl in einer Subshell. Schließen Sie Ihre Strings in doppelte Anführungszeichen ein, um die spezielle Bedeutung zu entfernen - './program qwerty" (abc) "" [hi] "' – codeforester
Ich befolge eine Spezifikation und kann die Eingabe, die editierte Frage oben, nicht ändern. – jordanc
Es scheitert in der Shell, bevor ** das Programm ** läuft, also nein, Sie können es nicht im Programm ändern. –