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