parametry wywołania skryptu podawane po -

parametry wywołania skryptu podawane po -
BA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 47
0

Cześć,
czy mógłby mnie ktoś naprowadzić- jak zdefiniować w pliku bashowym obsługę parametrów wywołania podawanych po - na zasadzie np 'l w grepie
Szukam, ale wszystko co udało mi się znaleźć to obsługa atrybutów podawanych podas wywoąłnia ($S1)

hauleth
  • Rejestracja: dni
  • Ostatnio: dni
BA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 47
0

hauleth bardzo dziękuję Ci za Twoje odpowiedzi

Chciałbym zapytać o jeszcze jedną rzecz- chodzi mi obsługę poszczególnych opcji- zrobiłem to w pętli while przy wykorzystaniu konstrukcji case iudało mi się obsłużyć różne opcje, mam jednak problem z obsługą przypadku, w którym w wywyłaniu nie zostanie podana żadna opcja. Znalazłem coś takeigo:

Kopiuj
if [ $OPTIND -eq 1 ]
  then
    echo "No options were passed"
  fi

jednak nie rozumiem dokładnie mechanizmu $OPTIND -eq 1. W internecie znalazłem informację

OPTIND indicates how many options were passed. In general, OPTIND is the number of arguments that are options or arguments to options, as opposed to non-option arguments (operands)

Więc wiem czym jest $OPTIND, ale nie wiem co z resztą tego wyrażenia. Bardzo proszę o pomoc.

Czy da się zrobić obsługę tego przypadku w konstrukcji case? W tej chwili mam coś takiego:

Kopiuj
while getopts vc option
do
 case $option in
  v)
   shift 1
   echo "wybrano v"
   ;;
  c)
   shift 1
   echo "wybrano c"
   ;;
  \?)
   shift 1
   echo "Niepoprawny parametr wywolania skryptu"
   ;;   
 esac
done
hauleth
  • Rejestracja: dni
  • Ostatnio: dni
1

[ to alias dla test więc man 1 test.

Przy czym poprawniejszy jest zapis:

Kopiuj
[ "$OPTIND" -eq 1 ]

W tym przypadku nie jest to niezbędne, ale gdyby OPTIND nie byłoby zdefiniowane, to miałbyś błąd składni test zamiast porównania. W ten sposób się przed tym bronisz.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.