OS args golang

OS args golang
Wenn Sie jemals ein Befehlszeilen-Dienstprogramm verwendet haben, wissen Sie, dass es eine Sache gibt, die sie alle gemeinsam haben. Sie alle akzeptieren Befehlszeilenargumente.

Argumente sind eine der besten Möglichkeiten, Parameter für Programme während der Ausführung zu erstellen. Wenn Sie beispielsweise den Befehl go run ausführen, geben Sie auch den Namen der Datei an, die Sie kompilieren möchten. Hier sind der Lauf und der Name der Datei Befehlszeilenargumente, die dem Go-Compiler mitteilen, was zu tun ist.

Dieser Leitfaden führt Sie durch das Erstellen von Argumenten für Ihre GO -Programme.

Golang OS -Paket

Um Befehlszeilenargumente in unserem Programm zu verwenden, müssen wir das Betriebssystempaket importieren. Dieses Paket enthält Betriebssystem.Args Variable, die Befehlszeilenargumente enthält

Diese Variable ist eine Reihe von Saiten und verfolgt die an das Programm übergebenen Argumente. Denken Sie daran, dass das erste Argument tatsächlich der Name des Programms ist.

Zum Beispiel:

Paket Main
importieren (
"fmt"
"OS"
)
funcmain ()
pg_name: = os.Args [0]
fmt.Println (pg_name)

Im obigen Beispiel verwenden wir das Betriebssystem.Array Array zum Abrufen des ersten Arguments (Index 0). Da das erste Argument der Name des auf dem Go -Compiler basierenden Programms ist, ist die resultierende Ausgabe der vollständige Pfad zur ausführbaren Datei des Programms.

$ go run os_args.gehen
C: \ Benutzer \ csalem \ appdata \ local \ temp \ go-build3770603401 \ b001 \ exe \ os_args.exe
Golang erhalten Anzahl von Argumenten

Golang erhalten Anzahl von Argumenten

Wir können die Anzahl der Argumente mit der Funktion Len () an ein Programm übergeben. Seit dem Betriebssystem.Args ist einfach ein Array, die Len -Funktion gibt die Anzahl der Elemente im Array zurück.

Ein Beispielprogramm ist wie unten gezeigt:

Packagemain
importieren (
"fmt"
"OS"
)
funcmain ()
arg_len: = len (os.Args [1:])
fmt.Println ("Argumentlänge:", arg_len)

Wenn wir den obigen Code mit einer Reihe von Befehlszeilenargumenten ausführen:

$ go run os_args.Gehen Sie an erster Stelle, den zweiten, dritten Platz

Wir sollten die Gesamtzahl der Argumente an das Programm übergeben lassen

Argumentlänge: 3

HINWEIS: Da wir wissen, dass das erste Argument der Name des Programms ist, verwenden wir Array -Slicing, um das erste Element zu entfernen und alle anderen Argumente nach Index 0 zu greifen.

Golang Command Line Flags

Wir können unsere eigenen benutzerdefinierten Flags mit dem Flags -Paket definieren. Ein Beispiel für eine Befehlszeilenflagge wäre -h, -l oder andere.

Mit dem MySQL CMD -Dienstprogramm können Sie beispielsweise den Benutzernamen und das Passwort mit dem Befehl angeben:

Mysql -u root -p

Lassen Sie uns ein einfaches Programm implementieren, das als Anmeldeaufforderung funktioniert.

Paket Main
importieren (
"Flagge"
"fmt"
)
funcmain ()
var Benutzername String
var Passwort Zeichenfolge
Flagge.StringVar (& Benutzername, "u", "root", "Standard Benutzername: root")
Flagge.StringVar (& Passwort, "P", "MySQL", "Standard Passwort: MySQL")
wenn userername == "root" && password == "mysql"
fmt.Println ("mySQL>")
anders
fmt.Println ("ein Fehler aufgenommen."))

Das obige einfache Programm verwendet das Flag -U- und -P -Flag, um zu überprüfen, ob der bereitgestellte Benutzername und das Passwort übereinstimmen. Wenn richtig.

Sobald wir das Programm erstellen:

Erstellen Sie CMD_FLAG.gehen

Wir können mit den Argumenten als rennen

./cmd_flags.exe -u root -p mysql

Dies sollte die Nachricht im IF -Block wie gezeigt zurückgeben:

$ ./Flaggen.exe -u root -p mysql
Mysql

Andernfalls sollte der Befehl die Nachricht im else -Block zurückgeben.

Abschluss

In diesem Artikel haben wir die Grundlagen der Arbeit der Befehlszeilenargumente mit dem Betriebssystempaket behandelt. Wir haben auch abgedeckt, wie die Befehlszeilenflags aus dem Flags-Paket verwendet werden.

Danke fürs Lesen!!