Bash Pagina 65

De la Wiki Linux Advanced
Versiunea din 27 octombrie 2024 13:08, autor: Admin (discuție | contribuții) (Pagină nouă: ==Getopts 2== Finalizarea procesării opțiunilor: Orice cuvânt care nu începe cu o liniuță (-) va încheia procesarea opțiunii. Astfel, orice argument care apare după opțiuni trebuie analizat manual. De exemplu: -x -y fisier1 fisier2 fisier3 * Semnul --: O opțiune -- este folosită pentru a indica finalul opțiunilor. Orice argument care urmează după -- va fi considerat un argument normal, nu o opțiune. * Utilizarea OPTARG: Argumentele pentru opțiuni vor fi st...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)
Sari la navigare Sari la căutare

Getopts 2

Finalizarea procesării opțiunilor: Orice cuvânt care nu începe cu o liniuță (-) va încheia procesarea opțiunii. Astfel, orice argument care apare după opțiuni trebuie analizat manual. De exemplu:

-x -y fisier1 fisier2 fisier3
  • Semnul --: O opțiune -- este folosită pentru a indica finalul opțiunilor. Orice argument care urmează după -- va fi considerat un argument normal, nu o opțiune.
  • Utilizarea OPTARG: Argumentele pentru opțiuni vor fi stocate în variabila OPTARG. Aceasta permite accesarea valorilor asociate cu opțiunile care necesită un argument.
  • Utilizarea OPTIND: Variabila OPTIND deține indexul următorului argument care urmează să fie procesat. Aceasta este utilă pentru a urmări starea procesării opțiunilor, mai ales când sunt amestecate opțiunile și argumentele.

Exemplu practic

#!/bin/bash
# Inițializare a variabilelor
verbose=0
filename=""
# Procesarea opțiunilor cu getopts
while getopts "vf:" opt; do
   case $opt in
       v)
           verbose=1
           ;;
       f)
           filename="$OPTARG"
           ;;
       \?)
           echo "Opțiune invalidă: -$OPTARG" >&2
           exit 1
           ;;
   esac
done
# Îndepărtarea opțiunilor procesate
shift $((OPTIND - 1))
# Verificarea argumentelor rămase
if [ -z "$filename" ]; then
   echo "Utilizare: $0 -f <fișier> [-v] [arg1 arg2 ...]"
   exit 1
fi
# Acțiune bazată pe opțiuni
if [ $verbose -eq 1 ]; then
   echo "Mod verbose activat."
   echo "Se va procesa fișierul: $filename"
fi
# Procesarea argumentelor rămase
for arg in "$@"; do
   echo "Argument suplimentar: $arg"
done

Cum funcționează scriptul

Opțiunile:

  • -v: Activează modul verbose.
  • -f <fișier>: Așteaptă un argument care specifică un fișier.

Procesarea argumentelor:

  • getopts citește argumentele și le procesează.
  • Dacă opțiunea -f este specificată, argumentul asociat este stocat în variabila filename.
  • Orice alt argument după opțiuni este gestionat cu shift pentru a permite procesarea ulterioară.

Ieșire:

Scriptul va informa utilizatorul despre opțiunile selectate și va afișa argumentele suplimentare.

Pagina anterioară | Următoarea pagină