O'Reilly logo

Bash. Receptury by Cameron Newham, JP Vossen, Carl Albing

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

5.10. Przetwarzanie listy parametrów zawierających znaki spacji

Problem

Zgodnie z zaleceniami przedstawionymi w poprzedniej recepturze odwołania do zmiennej zostały otoczone znakami cudzysłowu, jednak nie wyeliminowało to błędów podczas wykonywania skryptu. Zadanie skryptu jest dokładnie takie samo jak kodu zaprezentowanego w „5.8. Iteracyjna analiza parametrów przekazanych do skryptu”, ale w dostarczanych nazwach plików występują znaki spacji.

#
for FN in $*
do
    chmod 0750 "$FN"
done

Rozwiązanie

Problem tkwi w niewłaściwym użyciu zmiennej $*. W takich przypadkach konieczne jest zastosowanie innej zmiennej o podobnym działaniu — zmiennej $@. Jeśli zostanie ona otoczona znakami cudzysłowu, każdy element listy nazw plików również zostanie otoczony znakami ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required