Vă rugăm să aruncați o privire asupra acestui exemplu de cod:
MIN=10 if [ -n "$1" ]; then echo "$1"; fi if [ -n "$2" ]; then echo "$2"; fi if [ -n "$3" ]; then echo "$3"; fi if [ -n "$4" ]; then echo "$4"; fi if [ -n "$5" ]; then echo "$5"; fi if [ -n "$6" ]; then echo "$6"; fi if [ -n "$7" ]; then echo "$7"; fi if [ -n "$8" ]; then echo "$8"; fi if [ -n "$9" ]; then echo "$9"; fi if [ -n "${10}" ]; then echo "${10}"; fi echo "List of arguments: "$*"" echo "Name of this script: "$0"" if [ $# -lt "$MIN" ]; then echo "Not enough arguments, need $MIN to run."; fi
Pentru de exemplu, ieșirea terminalului $./new.sh q w e r t y u i o p va fi:
q w e r t y u i o p List of arguments: q w e r t y u i o p Name of this script: ./new.sh
Și ieșirea $./new.sh q w e r t y u i o va fi:
q w e r t y u i o List of arguments: q w e r t y u i o Name of this script: ./new.sh Not enough arguments, need 10 to run.
Întrebare : Ce înseamnă -n?
Comentarii
Răspunde
[ este un alt nume pentru încorporarea test, consultați aici și aici , de asemenea aceasta .
Această secvență de if declarațiile ar fi probabil mai bine ca buclă. În Bash am putea folosi expansiunea indirectă:
for ((i=1 ; i <= 10 ; i++)) ; do if [ -n "${!i}" ] ; then echo "${!i}" fi done
Cel mai frecvent idiom ar fi probabil să folosești shift pe fiecare iterație, dar distruge lista argumentelor.
De asemenea, citând: aici $0 se află în afara ghilimelelor. În majoritatea cazurilor, este mai util să mențineți toate extensiile variabile în ghilimele, cu excepția cazului în care doriți în mod explicit divizarea cuvintelor și extinderea numelui de fișier.
echo "Name of this script: "$0""
Deci, mai degrabă scrieți:
echo "Name of this script: $0"
Comentarii
- Puteți utiliza
shiftîn interiorul unei funcții și nu afectați lista argumentelor apelantului ', deși utilizarea unei funcții doar pentru asta este evident prost.
help test?[și-nsunt oribile de căutat.bash -n myscript, face o verificare a sintaxei a> pe script în loc să-l ruleze.