Validierung der One-Liner-Bash-Funktion
myFunction() {
: ${1?"forgot to supply an argument"}
if [ "$1" -gt "-1" ]; then
echo hi
fi
}
Funktionsnamen und Verwendung hinzufügen
myFunction() {
: ${1?"forgot to supply an argument ${FUNCNAME[0]}() Usage: ${FUNCNAME[0]} some_integer"}
if [ "$1" -gt "-1" ]; then
echo hi
fi
}
Fügen Sie eine Validierung hinzu, um zu überprüfen, ob eine Ganzzahl vorliegt
Um eine zusätzliche Validierung hinzuzufügen, z. B. um zu überprüfen, ob das übergebene Argument eine Ganzzahl ist, ändern Sie die Validierung eines Liners, um eine Validierungsfunktion aufzurufen:
: ${1?"forgot to supply an argument ${FUNCNAME[0]}() Usage: ${FUNCNAME[0]} some_integer"} && validateIntegers $1 || die "Must supply an integer!"
Erstellen Sie dann eine Validierungsfunktion, die das Argument validiert und 0 bei Erfolg, 1 bei Fehler und eine Die-Funktion zurückgibt, die das Skript bei Fehler abbricht
validateIntegers() {
if ! [[ "$1" =~ ^[0-9]+$ ]]; then
return 1 # failure
fi
return 0 #success
}
die() { echo "$*" 1>&2 ; exit 1; }
Noch einfacher - einfach benutzen set -u
set -u
stellt sicher, dass jede referenzierte Variable festgelegt ist, wenn sie verwendet wird. Legen Sie sie einfach fest und vergessen Sie sie
myFunction() {
set -u
if [ "$1" -gt "-1" ]; then
echo hi
fi
}
[ -z "$1" ] && echo "No argument supplied"
Ich bevorzuge Einzeiler, da sie für mich einfacher sind. und es ist auch schneller Check Exit - Wert, im Vergleich zur Verwendungif