Ich habe ein Fisch-Shell-Skript, dessen Standardverhalten darin besteht, nach Abschluss eine E-Mail zu senden. Ich möchte es ändern, um auf ein nomail
Argument von der Befehlszeile zu reagieren. So zum Beispiel, in der Regel das Skript ausführen würde eine E-Mail produzieren:Schreiben eines Fish Shell-Skripts mit einem optionalen Argument
michaelmichael: ~/bin/myscript
Aber wenn mit dem Schalter nomail
läuft, wäre es nicht die Bestätigung E-Mail:
michaelmichael: ~/bin/myscript nomail
Wenn Ich führe das Skript mit dem nomail
Argument, es läuft gut. Ohne nomail
ist nicht definiert und es wird ein Fehler ausgegeben. Ich habe die Dokumentation der Fischgräte durchforstet, kann aber nichts finden, was funktioniert. Hier ist, was ich bisher
switch $argv
case nomail
## Perform normal script functions
case ???
## Perform normal script functions
mailx -s "Script Done!"
end
Ausführen dieses den folgenden Fehler führt:
switch: Expected exactly one argument, got 0
Offensichtlich erwartet es ein Argument, ich einfach nicht wissen, die Syntax für das Erklären es keine Argumente zu akzeptieren oder eins, wenn es existiert.
Ich vermute, das ist ziemlich einfach, aber ich verstehe nur nicht sehr gut Shell-Skripting.
Es ist hilfreicher, wenn Sie die spezifische Fehlermeldung schreiben. –
hinzugefügt. Das tut mir leid. – michaelmichael