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)
parametry wywołania skryptu podawane po -
- Rejestracja: dni
- Ostatnio: dni
- Postów: 47
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
- Postów: 47
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ę
OPTINDindicates how many options were passed. In general,OPTINDis 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
- Rejestracja: dni
- Ostatnio: dni
[ 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.