Kuidas Bash Scriptis argumenti edastada?

How Do I Pass Argument Bash Script



Enamik Linux Mint 20 kasutajaid jääb bash -skriptis argumendi edastamisel jänni. Argumendid saate selle täitmisel edastada mis tahes bash -skriptile. Bash -skriptis argumentide edastamiseks on mitmeid lihtsaid ja kasulikke viise. Selles artikli juhendis anname teile teada väga lihtsatest viisidest, kuidas oma bash -skriptides argumente edastada ja kasutada.

Argumentide edastamine vaikemuutujate abil:

Looge puutekäsuga uus fail mis tahes nimega, nt file.sh.







$puudutadafaili nimi



Avage see äsja loodud fail ja lisage sellele mõni bash -skript. Olen lisanud mõned vaikimisi muutujad, nt. 1, 2 ja 3 dollarit. Kõik argumendid, mis terminali kaudu edastatakse, salvestatakse määratud muutujatesse.







Peate selle faili käivitama käsuga ./, millele järgnevad mõned argumendid. Nagu pildilt näete, et argumentide edastamisel ilmneb tõrge: luba on keelatud. Seda seetõttu, et sellel failil pole täitmisõigusi.

$./failinimi argument1 argument2 argument

Selle faili täitmisõiguste andmiseks kasutage selleks käsku sudo chmod.



$sudo chmod+x failinimi

Nüüd käivitage fail uuesti, kasutades ülaltoodud käsku. Seekord olen esitanud erinevaid argumente. Näete, et äsja vastuvõetud argumendid on salvestatud vaikemuutujatesse.

Shelli skripti nime edastamine argumendina:

Nüüd, kasutades sama vana faili file.sh, muutes selle vaikemuutujaid veidi. Peate skripti lisama muutuja $ 0, nagu näidatud.

Sama käsu ./ shell script käivitamisel kuvatakse teie shelliskripti nimi, nt ./faili nimi salvestatakse muutuja $ 0 argumendina.

Argumentide edastamine massiiviks muutujale:

Alustades samast failist file.sh, peate lisama vanasse skripti mõned täiendavad read. Kuulutage muutuja nimega massiiv. Lisage vaikemuutuja [email protected], mis salvestab kasutaja sisestatud argumendid massiivina. Need argumendid sõelutakse muutujamassiivi. Viimasel real kuvatakse kõik muutujamassiivi argumendid indeksi numbri järgi sorteerituna.

Käivitage ./ shelliskript. Näete, et see kuvab argumendid või väärtused, mis on salvestatud massiivina muutuvasse massiivi sõelutud [email protected], kuid mitte teises kajalauses kestaskripti nime. Saate järgmise väljundi.

$./failinimi argument1 argument2 argument

Kasutage sama faili sama skriptiga. Lihtsalt eemaldage $ {array [3]} viimaselt real nii selgelt kui pildil.

Pärast käsu ./ täitmist näete samasugust väljundit nagu ülaltoodud näites ilma muudatusteta.

Sama tulemuse saate ka asendades bash -skripti viimase rea ühe sõnaga. Peate lihtsalt lisama echo -avaldusse [email protected] ja see kuvab selles muutujamassiivis esitatud argumendid.

Nii et käivitades uuesti käsu ./, saate samu tulemusi.

Kontrollige esitatud argumentide koguarvu:

Vastupidi, kui soovite teada kasutaja poolt esitatud argumentide koguarvu, saate seda ka teha. Sel eesmärgil peate lihtsalt asendama [email protected] kajaga $#.

Taas käsu ./ täitmisel näete nüüd kogu skriptile edastatud argumentide arvu. Meie puhul edastatakse väärtusena 3 argumenti.

Loo argumentide rida -realt väljund:

Looge kodukataloogi uus fail test.sh. Lisage bash -skript, nagu näidatud.

Nüüd käivitage sama vana käsk erinevate argumentidega. Esiteks näete viga: luba on keelatud.

Selle faili sudo -õiguste andmiseks peate täitma käsu chmod. Pärast seda käivitage uuesti käsk ./ shell script. Ja saate rida -realt sorteeritud argumentide väljundi.

Muutuja piiramine argumendiindeksi numbri abil:

Kui soovite muutujat indeksi numbri abil piirata, saate seda teha väga lihtsalt. Lisage lokkisulud pärast märki $ ja lisage argumentide indeksi number, mida soovite kuvada teiste argumentide ees.

Kui kasutajate esitatud argumendid on piiramuutujast toodud indeksinumbrist väiksemad, saate argumendi väärtuse tühjaks. Näitena olen esitanud 4 argumenti, kuid olen andnud kuvamiseks argumendi väärtuse 05. Sellises olukorras kuvatakse muutuja tühjana, kuna viies argument on läbimata.

Kuid kui edastate käsus võrdse või suurema arvu argumente, kuvatakse tulemuses näidatud väärtus.

Konkreetsete väärtuste argumentide kontrollimine:

Tehke oma kodukataloogi uus fail nimega Check.sh. Lisage sama bash -skript, nagu on näidatud alloleval pildil. Selles skriptis on meil muutuja var kasutaja argumendi väärtuse salvestamiseks. Siis on meil lause if, mis kontrollib argumendi väärtuse sobitamist või mitte. Kui argumendi väärtus sobitatakse sulgudes sisalduva väärtusega, täidetakse esimene kajalause. Kui väärtus ei ühti, käivitatakse teine ​​kajalause.

Kui käivitame shelliskripti käsu, tekitab see tõrke. Kasutades käsku chmod, saame selle vea parandada.

Pärast seda käivitage konkreetse faili shelliskript mõne argumendiväärtusega. Meie puhul oleme esitanud argumendiväärtusena Aqsa, mis on sama, mis sulgudes kuvatud väärtus. Seega käivitab bash -skript esimese kaja avalduse, nagu näidatud.

Teisest küljest, kui sisestate shelliskriptis erinevad argumentide väärtused, kuvatakse see teine ​​kajalause. Siin olen lisanud Rimsha argumendi väärtuseks, mis erineb if -lauses antud väärtusest. Seega käivitab bash -skript teise kajalause.

Järeldus:

Loodan, et see juhend on aidanud teil piisavalt hästi mõista, kuidas argumente vaikemuutujatele edastada, argumendi väärtust massiivina muutujale edastada, edastatud argumentide koguarvu, argumentide rida -realt väljundit piirata väljund indeksnumbri abil, konkreetse väärtuse argumendi kontrollimine ja palju muud.