Bash Pagina 66
Getops 3
Gestionarea erorilor cu getopts este esențială pentru a oferi utilizatorului feedback clar atunci când se întâlnesc opțiuni invalide sau argumente lipsă. Iată o prezentare generală despre cum să gestionați erorile cu getopts, urmată de un exemplu.
- Opțiuni invalide:
Când getopts întâlnește o opțiune care nu este definită în optstring, returnează ?. Este important să verifici acest caz și să oferi un mesaj de eroare. Argumente lipsă:
Dacă o opțiune specificată necesită un argument, dar acesta nu este furnizat, getopts va returna : (două puncte). Acest lucru indică faptul că argumentul pentru opțiunea respectivă lipsește.
- Verificarea erorilor:
Poți folosi instrucțiuni case pentru a verifica valorile returnate de getopts și pentru a reacționa corespunzător.
Exemplu de gestionare a erorilor cu getopts
#!/bin/bash # Procesarea opțiunilor while getopts ":f:v" opt; do case $opt in f) file="$OPTARG" ;; v) verbose=1 ;; \?) echo "Opțiune invalidă: -$OPTARG" >&2 echo "Utilizare: $0 [-f nume_fișier] [-v]" >&2 exit 1 ;; :) echo "Opțiunea -$OPTARG necesită un argument." >&2 echo "Utilizare: $0 [-f nume_fișier] [-v]" >&2 exit 1 ;; esac done # Îndepărtarea opțiunilor procesate shift $((OPTIND - 1)) # Afișarea valorilor if $verbose -eq 1 ; then echo "Mod verbose activat." fi if -n $file ; then echo "Fișierul specificat: $file" else echo "Nu a fost specificat niciun fișier." fi
Cum funcționează scriptul:
Opțiuni:
- -f: Așteaptă un argument (numele fișierului).
- -v: Activează modul verbose.
Gestionarea erorilor:
- Dacă utilizatorul furnizează o opțiune invalidă, scriptul afișează un mesaj corespunzător și iese cu un cod de eroare 1.
- Dacă utilizatorul omite argumentul pentru -f, scriptul va indica faptul că opțiunea necesită un argument și va oferi o utilizare corectă.
Exemple de utilizare:
Opțiune invalidă:
./script.sh -x
Ieșire:
Opțiune invalidă: -x Utilizare: ./script.sh [-f nume_fișier] [-v]
Argument lipsă:
./script.sh -f
Ieșire:
Opțiunea -f necesită un argument. Utilizare: ./script.sh [-f nume_fișier] [-v]
Concluzie
Gestionarea erorilor cu getopts ajută la crearea unor scripturi Bash mai robuste și mai prietenoase cu utilizatorii. Asigurându-te că opțiunile și argumentele sunt validate corect, poți preveni erorile și confuziile la utilizarea scriptului.