parametry wywołania skryptu podawane po -

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)

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:

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:

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
1

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

Przy czym poprawniejszy jest zapis:

[ "$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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1