Katsokaa tätä koodinäytettä:
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
Esimerkki: $./new.sh q w e r t y u i o p
-liitännän lähtö on:
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
Ja $./new.sh q w e r t y u i o
tulee olemaan:
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.
Kysymys : Mitä -n
tarkoittaa?
kommentit
Vastaa
[
on toinen sisäänrakennetun test
-nimi, katso tästä ja täällä , myös tämä .
Tämä if
-sarja lausunnot olisivat todennäköisesti parempia kuin silmukka. Bashissa voimme käyttää epäsuoraa laajennusta:
for ((i=1 ; i <= 10 ; i++)) ; do if [ -n "${!i}" ] ; then echo "${!i}" fi done
Yleisempi idioma olisi todennäköisesti käyttää shift
jokaiseen iteraatio, mutta se tuhoaa argumenttiluettelon.
Lainaus: here $0
on lainausmerkkien ulkopuolella. Useimmissa tapauksissa on hyödyllistä pitää kaikki muuttujien laajennukset lainausmerkeissä, ellet nimenomaisesti halua sananjakoa ja tiedostonimen laajennusta.
echo "Name of this script: "$0""
Kirjoita siis pikemminkin:
echo "Name of this script: $0"
Kommentit
- Voit käyttää
shift
-funktiota funktion sisällä äläkä vaikuta soittajan ' argumenttiluetteloon, vaikka funktion käyttäminen vain tälle on tietysti vähän hakkerointi.
help test
?[
ja-n
on kamalaa etsiä.bash -n myscript
tekee, se tarkistaa syntaksitarkistuksen komentosarjassa sen sijaan, että se suoritettaisiin.