Heim >Backend-Entwicklung >Golang >Warum schlägt mein Go „exec.Command('mv', '*')` mit „Exit-Status 1' fehl?

Warum schlägt mein Go „exec.Command('mv', '*')` mit „Exit-Status 1' fehl?

DDD
DDDOriginal
2024-12-16 04:12:57538Durchsuche

Why Does My Go `exec.Command(

Go: Fehler „Befehl konnte nicht ausgeführt werden“ bei Verwendung von Platzhalterzeichen

Beim Versuch, einen „mv“-Befehl mit dem Exec-Paket von Go auszuführen , kann eine Fehlermeldung mit der Meldung „Exit-Status 1“ auftreten. Dieses Problem tritt auf, wenn im Befehl Platzhalter wie „*“ verwendet werden.

Das Problem liegt in der Art und Weise, wie die Shell den Befehl interpretiert. Wenn in der Shell ein Platzhalter eingegeben wird, wird dieser zu einer Liste übereinstimmender Dateinamen erweitert. Bei Verwendung des exec-Pakets wird der Platzhalter jedoch nicht erweitert und der Befehl wird mit dem Platzhalter selbst als Argument ausgeführt.

Um dieses Problem zu beheben, können zwei Ansätze gewählt werden:

  1. Verwenden Sie filepath.Glob: Erweitern Sie den Platzhalter mithilfe der Funktion filepath.Glob manuell in eine Liste von Dateinamen und übergeben Sie den resultierenden Slice als Argumente zum exec-Paket.
  2. Rufen Sie die Shell auf: Nutzen Sie die Wildcard-Erweiterungsfunktionen der Shell, indem Sie sie mit exec.Command mit „/bin/sh“ als Binärdatei und „-c“ als aufrufen das Argument. Die Shell erweitert dann den Platzhalter, bevor sie den Befehl an die ausführbare Datei „mv“ übergibt.

Das obige ist der detaillierte Inhalt vonWarum schlägt mein Go „exec.Command('mv', '*')` mit „Exit-Status 1' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn