validasi fungsi satu liner bash
myFunction() {
: ${1?"forgot to supply an argument"}
if [ "$1" -gt "-1" ]; then
echo hi
fi
}
tambahkan nama fungsi dan penggunaan
myFunction() {
: ${1?"forgot to supply an argument ${FUNCNAME[0]}() Usage: ${FUNCNAME[0]} some_integer"}
if [ "$1" -gt "-1" ]; then
echo hi
fi
}
tambahkan validasi untuk memeriksa apakah bilangan bulat
untuk menambahkan validasi tambahan, misalnya untuk memeriksa untuk melihat apakah argumen yang disahkan adalah bilangan bulat, modifikasi validasi satu liner untuk memanggil fungsi validasi:
: ${1?"forgot to supply an argument ${FUNCNAME[0]}() Usage: ${FUNCNAME[0]} some_integer"} && validateIntegers $1 || die "Must supply an integer!"
kemudian, buat fungsi validasi yang memvalidasi argumen, mengembalikan 0 pada keberhasilan, 1 pada kegagalan dan fungsi mati yang membatalkan skrip pada kegagalan
validateIntegers() {
if ! [[ "$1" =~ ^[0-9]+$ ]]; then
return 1 # failure
fi
return 0 #success
}
die() { echo "$*" 1>&2 ; exit 1; }
Lebih sederhana - cukup gunakan set -u
set -u
memastikan bahwa setiap variabel yang direferensikan diatur saat digunakan, jadi atur dan lupakan saja
myFunction() {
set -u
if [ "$1" -gt "-1" ]; then
echo hi
fi
}
[ -z "$1" ] && echo "No argument supplied"
Saya lebih suka satu kalimat, karena lebih mudah bagi saya; dan itu juga lebih cepat untuk memeriksa nilai keluar, dibandingkan dengan menggunakanif