Ausführen integrierter Linux-Befehle aus Go-Programmen
Beim Versuch, Shell-Befehle in Go-Programmen auszuführen, können Probleme mit integrierten Befehlen auftreten. die nicht wie herkömmliche Binärdateien im $PATH zu finden sind. In diesem Artikel wird erläutert, wie integrierte Linux-Befehle in Go-Programmen ausgeführt werden.
Im bereitgestellten Beispiel schlägt die direkte Ausführung von „command -v foo“ mit exec.Command() fehl, da es sich bei dem Befehl um eine integrierte Shell handelt Funktion. Um damit umzugehen, gibt es mehrere Ansätze:
exec.LookPath
Native Go-Unterstützung für die Suche nach integrierten Befehlen ist über exec.LookPath verfügbar. Diese Funktion sucht im PATH des Systems nach einer ausführbaren Datei und gibt ihren vollständigen Pfad zurück, wenn sie gefunden wird. Sobald Sie es gefunden haben, können Sie diesen Pfad verwenden, um den Befehl auszuführen.
exec.Command mit Shell Wrapper
Wenn eine direkte Ausführung nicht möglich ist, können Sie die Shell des Systems verwenden um integrierte Befehle auszuführen. Dies kann erreicht werden, indem der Befehl in einen Shell-Befehl eingeschlossen wird, wie zum Beispiel:
exec.Command("/bin/bash", "-c", "command -v foo")
Hier weist der Wrapper „/bin/bash -c“ das System an, den Befehl innerhalb einer Shell auszuführen, wodurch der Build erstellt wird -in-Befehle zugänglich.
Das obige ist der detaillierte Inhalt vonWie führe ich integrierte Linux-Befehle aus Go-Programmen aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!