Es gibt ein Programm, das ich verwende, sagen wir xyz
, das hat unerwünschte Auswirkungen, wenn ich den Befehl ohne Argumente ausführe. Ich möchte also verhindern, dass ich versehentlich xyz
ausführe Befehl ohne Argumente, aber Ausführung mit Argumenten zulassen.
Wie kann ich ein Shell-Skript schreiben, damit beim Aufruf von xyz
ohne Argumente wird eine Fehlermeldung ausgegeben und ansonsten alle Argumente an xyz
übergeben Programm?
Akzeptierte Antwort:
Sie können die spezielle Variable $#:
überprüfenif [ $# -eq 0 ]; then
echo "No arguments provided!"
exit 1
fi
/usr/bin/xyz "[email protected]"
Fügen Sie dann einen Alias zu Ihrem ~/.bashrc
hinzu;
alias xyz="/path/to/script.sh"
Jetzt jedes Mal, wenn Sie xyz
ausführen , wird stattdessen der Alias gestartet. Dadurch wird das Skript aufgerufen, das überprüft, ob Sie Argumente haben, und nur den echten xyz
startet Befehl, wenn Sie dies tun. Ändern Sie natürlich /usr/bin/xyz
wie auch immer der vollständige Pfad des Befehls lautet.