Anzeigen der Verwendung des Bash-Skripts
Es empfiehlt sich, die Verwendung in jedes Bash-Skript aufzunehmen, das Sie erstellen. Dies gibt dem Benutzer eine Vorstellung davon, welche Optionen das Skript erwartet, sodass er es wie vorgesehen verwenden kann. Es gibt dem Skript auch die Möglichkeit, Fehler zu überprüfen, um sicherzustellen, dass der Benutzer Argumente in der erwarteten Weise bereitgestellt hat.
In diesem Tutorial lernen Sie einige verschiedene Methoden kennen, um die Verwendung des Bash-Skripts zu zeigen, zu überprüfen, welcher Benutzer das Skript ausführt, und die aktuelle Anzahl von Argumenten unter Linux zu überprüfen.
In diesem Tutorial lernen Sie:
- So zeigen Sie die Verwendung von Bash-Skripten mit
ifund$@an - So zeigen Sie die Verwendung von Bash-Skripten mit
getoptsan - So zeigen Sie die Verwendung des Bash-Skripts an, wenn eine nicht erkannte Option eingegeben wird
- So überprüfen Sie, ob die richtige Anzahl von Optionen an das Bash-Skript übergeben wird
- So überprüfen Sie, ob der Root-Benutzer ein Bash-Skript ausführt
Anzeigen der Verwendung des Bash-Skripts
Es gibt mehrere Möglichkeiten, die Skriptnutzung in Ihrem Bash-Skript anzuzeigen. Eine Möglichkeit besteht darin, zu überprüfen, ob der Benutzer die Optionen -h oder --help als Argumente angegeben hat, wie unten gezeigt.
#!/bin/bash
check whether user had supplied -h or --help . If yes display usage
if [[ ( $@ == "--help") || $@ == "-h" ]]
then
echo "Usage: $0 [arguments]"
exit 0
fi
echo "All good !!!"Jetzt wird unsere if-Anweisung, die die Bash-Nutzung enthält, nur ausgelöst, wenn --help OR -h angegeben wird.
./test.sh
All good !!!
./test.sh --help
Usage: ./test.sh [arguments]
Die nächste Möglichkeit, diese Funktionalität bereitzustellen, ist mit getopts. Das folgende Beispiel führt die gleiche Funktion wie das vorherige Skript aus, hat jedoch den zusätzlichen Vorteil, dass die Verwendung immer dann angezeigt wird, wenn der Benutzer eine ungültige Option angibt.
#!/bin/bash
while getopts 'lh' OPTION; do
case "$OPTION" in
l)
echo "linuxconfig"
;;
h)
echo "script usage: $(basename \$0) [-l] [-h]" >&2
exit 0
;;
?)
echo "script usage: $(basename \$0) [-l] [-h]" >&2
exit 1
;;
esac
doneDas obige Skript kann die Option -l akzeptieren. Wenn stattdessen die Option -h angegeben wird, wird die Verwendung des Bash-Skripts angezeigt. Wenn eine andere Option an das Skript übergeben wird und das Skript sie nicht erkennt, wird die Bash-Verwendung auch unter diesen Umständen angezeigt.
./test.sh -l
linuxconfig
./test.sh -h
script usage: $0 [-l] [-h]
./test.sh -s
./test.sh: illegal option -- s
script usage: $0 [-l] [-h]
Weitere Informationen zu dieser Methode finden Sie in unserem Tutorial unter: Bash-Skript: Verwendung von Flags mit Beispielen für Argumente.
Manchmal ist es erforderlich, zu überprüfen, welcher Benutzer das Bash-Skript ausführt und ob der Benutzer alle erforderlichen Argumente angegeben hat. In diesem Fall wäre ein aufgepepptes Skript wie dieses praktisch, das auf mehrere Dinge prüft:
#!/bin/bash
display_usage() {
echo "This script must be run with super-user privileges."
echo -e "\nUsage: $0 [arguments] \n"
}
if less than two arguments supplied, display usage
if [ $# -le 1 ]
then
display_usage
exit 1
fi
check whether user had supplied -h or --help . If yes display usage
if [[ ( $@ == "--help") || $@ == "-h" ]]
then
display_usage
exit 0
fi
display usage if the script is not run as root user
if [[ "$EUID" -ne 0 ]]; then
echo "This script must be run as root!"
exit 1
fi
echo "All good !!!"Vielleicht interessieren Sie sich auch für unsere Tutorials zu Bash-Skripting: Befehlszeilenargumente und Bash-Skript: Anzahl der Argumente, die an das Skript übergeben werden.
Abschließende Gedanken
In diesem Tutorial haben Sie gesehen, wie die Verwendung des Bash-Skripts angezeigt wird, wenn ein Benutzer das Skript auf einem Linux-System ausführt. Wir haben mehrere Methoden dafür gezeigt, und die beste hängt von Ihrer Situation ab und davon, wie komplex Sie Ihr Skript gestalten möchten. Es ist auch immer eine gute Idee, die Anzahl der übergebenen Argumente zu überprüfen und zu überprüfen, welcher Benutzer das Skript ausführt.
