L'anàlisi i el pas d'arguments a scripts bash/shell scripts és força semblant a la manera en què passem arguments a les funcions dins dels scripts Bash. Veurem el procés real de passar els arguments a un script i també veurem la manera d'accedir a aquests arguments dins de l'script.
Passar arguments abans de córrer
Podem passar paràmetres just després del nom de l'script mentre executem l'ordre de l'intèrpret bash. Podeu passar paràmetres o arguments al fitxer. Només l'ordre per executar l'script amb normalitat afegint el valor dels paràmetres directament a l'script. Cada paràmetre és un valor separat per espais per passar a l'script de l'intèrpret d'ordres.
tipus de dades sql
bash scriptname.sh>
L'ordre anterior només executarà l'script sense passar els paràmetres.
Mentre que l'ordre següent passarà els arguments a l'script.
bash scriptname.sh parameter1 parameter2 parameter3 nth-parameter>

S'està executant l'script bash amb el pas de paràmetres
La captura de pantalla anterior mostra els paràmetres passats a l'script, com ho farem, que explicarem a la secció següent. Però ara mateix podem veure que hem passat els paràmetres des de fora de l'script mitjançant variables d'entorn bash. Fins i tot podeu utilitzar cadenes i altres tipus de dades, però aneu amb compte amb qualsevol espai en blanc. L'espai en blanc farà de la variable un paràmetre independent. Per tant, especialment per a les cordes, aneu amb compte d'envoltar-les estrictament entre cometes.
Detecció d'arguments de línia d'ordres
Ara, veurem com accedim a aquests paràmetres dins de l'script. Utilitzarem el nombre de paràmetres passats en l'ordre, és a dir, per als primers paràmetres passats, analitzarem (accedirem) al paràmetre utilitzant com a variable. El primer paràmetre s'emmagatzema a la variable . A més, podeu assignar aquesta variable a qualsevol altra variable definida per l'usuari que us agradi. Per a l'ensè paràmetre passat, podeu utilitzar $n per accedir a aquest paràmetre en particular. Aquí, el nom de la variable comença amb 1 perquè el nom de fitxer/nom de l'script és el paràmetre 0. Si teniu més de 9 paràmetres, assegureu-vos d'utilitzar { } al voltant del número ja que sense els parèntesis, bash només veurà com a i exclourà el 0, així que utilitzeu i així successivament en lloc de simplement .
#!/bin/bash echo '1st parameter = ' echo '2nd Parameter = '>
L'script anterior pot accedir als paràmetres des de la línia d'ordres/shell utilitzant els paràmetres posicionals, que són 1, 2, 3, etc.

Accés als arguments des del guió.
Com podeu veure, hem utilitzat {} per accedir als números de variables del paràmetre a partir del 10. L'script es pot utilitzar per a bucles i bucles while per iterar sobre els paràmetres, però ho parlarem en seccions posteriors.
Assigna els arguments proporcionats a la variable Bash
També podem assignar-lo a altres variables personalitzades per dinamitzar el guió i modelar-lo segons les necessitats. Tot i que l'script anterior quan s'executa només imprimirà dos paràmetres, segurament podeu accedir a més paràmetres utilitzant la variable com l'ordre dels paràmetres en nombres. L'script pot accedir a les variables de posició des de la línia d'ordres i utilitzar-les als llocs necessaris allà on sigui necessari dins de l'script.
#!/bin/bash a= b= p=$(($a*$b)) echo 'The product of $a and $b = $p'>

Assigna els arguments proporcionats a la variable Bash
cadena a caràcter
L'script anterior accedeix als paràmetres posicionals, és a dir, i passats a l'script i emmagatzema les variables definides per l'usuari per accedir-hi més tard i modificar-les en conseqüència. També podem accedir a més paràmetres mitjançant mètodes iteratius, tal com veurem a les properes seccions.
També tenim la possibilitat de comprovar si hi ha paràmetres NULL o buits passats mitjançant els senyaladors -z o -n. A partir d'això, podem comprovar si els paràmetres s'han passat o no.
#!/bin/bash if [[ -z ]]; then echo 'No parameter passed.' else echo 'Parameter passed = ' fi>

Comprovació dels paràmetres de posició passats o no.
Amb aquest script, podem detectar si s'ha passat algun paràmetre posicional o no s'ha passat res. El senyalador -z comprova si hi ha variables NULL o no inicialitzades a BASH. El senyalador -z retorna cert si la variable que s'ha passat és NULL o no està inicialitzada. Per tant, podem fer ús de les declaracions bàsiques If-else per detectar els paràmetres passats.
llistat de java
També podem utilitzar -n bandera que retorna true si no es passa cap paràmetre, així que hem de fer servir ! per revertir la condició.
Com el següent:
#!/bin/bash if [[ ! -n ]]; then echo 'No parameter passed.' else echo 'Parameter passed = ' fi>
Aquest script també donarà la mateixa sortida, però estem fent ús del senyalador -n en comptes de -z.
Llegir diversos arguments amb el bucle For o While
Podem utilitzar la variable @ per accedir a tots els paràmetres passats a l'script mitjançant la línia d'ordres. És una variable especial que conté la matriu de variables a BASH. En aquest cas, l'estem utilitzant sol, de manera que conté la matriu de paràmetres posicionals passats. Podem utilitzar-lo per iterar sobre els paràmetres passats mitjançant bucles o bucles while també.
#!/bin/bash for i in $@ do echo -e '$i ' done>

Utilitzant bucles i variable @ per accedir als paràmetres com a elements de matriu.
Hem utilitzat un bucle for basat en un rang per iterar fins que hi hagi elements a la matriu @. Simplement iterem sobre la matriu i imprimim l'element. Simplement podem assignar-lo, modificar els valors i fer els canvis necessaris als paràmetres i arguments per aconseguir el resultat desitjat de l'script.
O
nombre aleatori en java
També podem imprimir els arguments utilitzant el bucle while i les variables ambientals de BASH.
#!/bin/bash i=$(($#-1)) while [ $i -ge 0 ]; do echo ${BASH_ARGV[$i]} i=$((i-1)) done> 
S'utilitza el bucle while per iterar sobre els paràmetres passats.
Estem utilitzant la variable ' # ', ja que conté el nombre de paràmetres passats. Inicialitzem el nombre de paràmetres i en traiem un a mesura que farem servir una matriu per iterar-hi. Així, com és habitual, l'índex de la matriu comença des de 0. Com que aquesta matriu s'inicializa des de l'últim element o paràmetre passat, hem de disminuir el comptador fins a 0 per imprimir tots els paràmetres en l'ordre en què es passa. Simplement fem servir la matriu BASH_ARGV per accedir als paràmetres i imprimir-ne el valor. A més, a cada iteració, disminuïm el valor de i- l'iterador o comptador en un usant les claus dobles aritmètiques. A partir d'això, simplement imprimim tots els paràmetres passats a l'script mitjançant un bucle while tal com es mostra a la captura de pantalla de sortida.
Lectura amb noms de paràmetres
Ús de getopts per analitzar arguments i paràmetres
Podem utilitzar l'ordre programa/geopts per analitzar els arguments passats a l'script a la línia d'ordres/terminal utilitzant bucles i declaracions switch-case.
#!/bin/bash while getopts n:c: option do case '${option}' in n)nation=${OPTARG};; c)code=${OPTARG};; esac done echo 'Nation : $nation' echo 'code : $code'> 
Ús de getopts per analitzar arguments i paràmetres
Mitjançant getopts, podem assignar els arguments/paràmetres posicionals de la línia d'ordres a les variables bash directament. Això ens permet gestionar els paràmetres de manera agradable i sistemàtica. A l'script anterior, hem utilitzat dos arguments per emmagatzemar les variables bash utilitzant la sintaxi getopts, bucles while i declaracions switch-case.
Impressió de valors de tots els arguments
Podem imprimir els arguments passats a l'script mitjançant una simple variable potent '@' que emmagatzema tots els paràmetres passats.
mysql crea usuari
#!/bin/bash echo 'The arguments passed in are : $@'>

Impressió de valors de tots els arguments
Accés al nombre de paràmetres passats
També podem utilitzar la variable '#' per accedir al nombre de paràmetres passats des de la línia d'ordres. La variable # conté bàsicament el nombre de paràmetres/arguments que es passen a l'script.
#!/bin/bash echo 'The number of arguments passed in are : $#'>

Accés al nombre de paràmetres passats
El següent va ser el procés i l'especificació de passar i analitzar les variables a l'script bash. La lògica de desplaçar i fer modificacions a les variables està en mans de l'usuari. Aquesta va ser només una demostració de passar i analitzar els arguments de la línia d'ordres a l'script per fer-los més dinàmics.