In base allo manual, [email protected]
si espande ai parametri posizionali, a partire da uno. Se si chiama questo script come scripty.sh ls /
, verrà eseguito ls /
durante il reindirizzamento di tutto l'output nel bucket di bit. Questo dovrebbe restituire il successo (spero!) E quindi lo script stamperà Valid command
. Se lo chiami scripty.sh ls /some/nonexistent/directory
, il comando ls
dovrebbe fallire e lo script non produrrà nulla.
In realtà, penso che lo script possa essere migliorato per inserire le virgolette attorno a [email protected]
in modo che gli argomenti con spazi al loro interno non facciano scoppiare l'interprete.
Con [email protected]
il comando ls "/Library/Application Support"
viene esteso a tre parole. Con "[email protected]"
è espanso a due, e il comando viene eseguito proprio come sarebbe senza lo script che lo avvolge.
solo per sostenere: spiegazione si trova qui: http: // TLDP .org/LDP/abs/html/internalvariables.html # APPREF – Yuri
Penso che '$ *' e '$ @' siano solo diversi quando sono circondati da virgolette. – mkb
@mkb: hai ragione. Temo che @unwind non lo sia: senza specificare '" $ @ "', i parametri otterrebbero la divisione degli spazi bianchi, ovvero la funzione ' ' TT() {$ @; }; TT ls 1 2 '3 4'' – choroba