Zgodnie z manual, [email protected]
rozwija się do parametrów pozycyjnych, zaczynając od jednego. Jeśli wywołasz ten skrypt jako scripty.sh ls /
, wykona on ls /
podczas przekierowywania wszystkich danych wyjściowych do segmentu bitowego. To powinno odnieść sukces (mam nadzieję!), A więc skrypt wydrukuje Valid command
. Jeśli nazwiesz to scripty.sh ls /some/nonexistent/directory
, to polecenie ls
powinno się nie powieść, a skrypt nie wyświetli niczego.
Uważam, że skrypt można ulepszyć, umieszczając podwójne cytaty wokół [email protected]
, aby argumenty zawierające spacje nie powodowały interwencji interpretera.
Wraz z [email protected]
polecenie ls "/Library/Application Support"
zostało rozwinięte do trzech słów. Z "[email protected]"
jest on rozszerzony do dwóch, a komenda uruchamiana jest tak, jakby była bez pakowania skryptu.
Wystarczy, aby wspierać: wyjaśnienie można znaleźć tutaj: http: // tldp .org/LDP/abs/html/internalvariables.html # APPREF – Yuri
Myślę, że '$ *' i '$ @' są różne tylko w otoczeniu podwójnych cudzysłowów. – mkb
@mkb: masz rację. Obawiam się, że "nie ma wiatru": bez określenia '' $ @ "' parametry zostaną rozdzielone, tj. 'funkcja TT() {$ @; }; TT ls 1 2 '3 4'' – choroba