bir astar bash işlevi doğrulaması
myFunction() {
: ${1?"forgot to supply an argument"}
if [ "$1" -gt "-1" ]; then
echo hi
fi
}
işlev adı ve kullanımı ekle
myFunction() {
: ${1?"forgot to supply an argument ${FUNCNAME[0]}() Usage: ${FUNCNAME[0]} some_integer"}
if [ "$1" -gt "-1" ]; then
echo hi
fi
}
tamsayı olup olmadığını kontrol etmek için doğrulama ekle
ek doğrulama eklemek için (örneğin, iletilen bağımsız değişkenin bir tam sayı olup olmadığını kontrol etmek için), bir doğrulama işlevini çağırmak için doğrulama işlemini bir astarda değiştirin:
: ${1?"forgot to supply an argument ${FUNCNAME[0]}() Usage: ${FUNCNAME[0]} some_integer"} && validateIntegers $1 || die "Must supply an integer!"
sonra, argümanı doğrulayan ve başarıda 0, hatada 1 ve hatada komut dosyasını iptal eden bir die işlevi döndüren bir doğrulama işlevi oluşturun
validateIntegers() {
if ! [[ "$1" =~ ^[0-9]+$ ]]; then
return 1 # failure
fi
return 0 #success
}
die() { echo "$*" 1>&2 ; exit 1; }
Daha da basit - sadece kullanın set -u
set -u
atıfta bulunulan her değişkenin kullanıldığında ayarlandığından emin olun, bu yüzden ayarlayın ve unutun
myFunction() {
set -u
if [ "$1" -gt "-1" ]; then
echo hi
fi
}
[ -z "$1" ] && echo "No argument supplied"
Benim için daha kolay oldukları için tek astarları tercih ederim; çıkış değerinin kontrol edilmesi de kullanıma kıyasla daha hızlıif