Kā izturēt argumentu bash skriptā?

How Do I Pass Argument Bash Script



Lielākā daļa Linux Mint 20 lietotāju nonāk strupceļā, argumentējot bash skriptu. Jūs varat nodot argumentus jebkuram bash skriptam, kad tas tiek izpildīts. Ir vairāki vienkārši un noderīgi veidi, kā nodot argumentus bash skriptā. Šajā raksta ceļvedī mēs jūs informēsim par dažiem ļoti vienkāršiem veidiem, kā nodot un izmantot argumentus jūsu bash skriptos.

Argumentu nodošana, izmantojot noklusējuma mainīgos:

Izveidojiet jaunu failu ar jebkuru nosaukumu, izmantojot pieskāriena komandu, piemēram, file.sh.







$pieskartiesfaila nosaukums



Atveriet šo jaunizveidoto failu un pievienojiet tam bash skriptu. Esmu pievienojis dažus noklusējuma mainīgos, piem. 1 USD, 2 USD un attiecīgi 3 USD. Visi argumenti, kas tiks nodoti caur termināli, tiks saglabāti norādītajos mainīgajos.







Jums ir jāpalaiž šis fails, izmantojot komandu ./, kam seko daži argumenti. Kā redzat attēlā, ka, iesniedzot argumentus, rodas kļūda: atļauja liegta. Tas ir tāpēc, ka šim failam nav izpildes tiesību.

$./faila nosaukuma arguments1 arguments2 arguments

Tātad, lai piešķirtu izpildes tiesības šim failam, izmantojiet sudo chmod komandu.



$sudo chmod+x faila nosaukums

Tagad atkal palaidiet failu, izmantojot to pašu iepriekš minēto komandu. Šoreiz es sniedzu dažādus argumentus. Jūs redzēsit, ka jaunie argumenti tiek saglabāti noklusējuma mainīgajos.

Shell skripta nosaukums tiek nodots kā arguments:

Tagad, izmantojot to pašu veco failu file.sh, nedaudz mainot noklusējuma mainīgos. Skriptam jāpievieno mainīgais $ 0, kā parādīts attēlā.

Palaižot to pašu komandu ./ shell skripts, jūsu čaulas skripta nosaukums, piem. ./faila nosaukums tiks saglabāts mainīgajā $ 0 kā arguments.

Argumentu nodošana mainīgajam:

Sākot ar to pašu failu file.sh, vecajā skriptā jāpievieno dažas papildu rindas. Deklarējiet mainīgo ar nosaukumu masīvs. Pievienojiet noklusējuma mainīgo [aizsargāts ar e -pastu], kas saglabās lietotāja ievadītos argumentus kā masīvu. Šie argumenti tiks parsēti uz mainīgo masīvu. Pēdējā rindā tiks parādīti visi mainīgā masīva argumenti, sakārtoti pēc indeksa numura.

Izpildiet ./ čaulas skriptu. Jūs redzēsit, ka tajā tiks parādīti argumenti vai vērtības, kas saglabātas kā masīvs [e -pasta aizsargāts], kas parsēts uz mainīgo masīvu, bet ne čaulas skripta nosaukums otrajā atbalss paziņojumā. Jums būs šāda izeja.

$./faila nosaukuma arguments1 arguments2 arguments

Izmantojiet to pašu failu ar to pašu skriptu. Vienkārši noņemiet $ {array [3]} no pēdējās rindas, kā redzams attēlā.

Pēc komandas ./ izpildīšanas jūs redzēsit līdzīgu izvadi, kā iepriekšējā piemērā bez izmaiņām.

To pašu rezultātu var iegūt, aizstājot bash skripta pēdējo rindu ar vienu vārdu. Jums vienkārši jāpievieno [e -pasts aizsargāts] atbalss paziņojumā, un tajā tiks parādīti šajā mainīgo masīvā esošie argumenti.

Tātad, vēlreiz palaižot komandu ./, jūs iegūsit tādus pašus rezultātus.

Pārbaudiet kopējo iesniegto argumentu skaitu:

Gluži pretēji, ja vēlaties uzzināt kopējo lietotāja iesniegto argumentu skaitu, varat to arī izdarīt. Šim nolūkam jums vienkārši jāaizstāj [email protected] ar $# in echo.

Atkal izpildot komandu ./, jūs tagad redzēsit visu skriptam nodoto argumentu skaitu. Mūsu gadījumā kā argumenti tiek nodoti kā vērtība.

Izveidot argumentu izvadi pa rindām:

Mājas direktorijā izveidojiet jaunu failu test.sh. Pievienojiet bash skriptu, kā parādīts attēlā.

Tagad palaidiet to pašu veco komandu ar dažādiem argumentiem. Pirmkārt, jūs redzēsit kļūdu: Atļauja noraidīta.

Lai piešķirtu šim failam sudo privilēģijas, jums jāizpilda komanda chmod. Pēc tam vēlreiz palaidiet komandu ./ shell skripts. Un jūs saņemsiet rindu pa rindai sakārtotu argumentu izvadi.

Ierobežot mainīgo, izmantojot argumentu indeksa numuru:

Ja vēlaties ierobežot mainīgo, izmantojot tā indeksa numuru, varat to izdarīt ļoti vienkārši. Pievienojiet cirtainās iekavas aiz $ zīmes un pievienojiet argumentu indeksa numuru, kuru vēlaties parādīt pirms citiem argumentiem.

Ja lietotāju sniegtie argumenti ir mazāki par indeksa numuru, kas norādīts ierobežojuma mainīgajā lielumā, jūs saņemsiet tukšu argumenta vērtību. Kā piemēru esmu norādījis 4 argumentus, bet esmu norādījis parādāmo argumenta vērtību 05. Šādā situācijā mainīgais tiks parādīts tukšs, jo piektais arguments nav nodots.

Bet, komandā nododot vienādu vai vairāk argumentu, jūs iegūsit rezultātu, kas parādīta attēlā.

Īpašu vērtību argumentu pārbaude:

Izveidojiet jaunu failu ar nosaukumu Check.sh savā mājas direktorijā. Pievienojiet to pašu bash skriptu, kā parādīts zemāk esošajā attēlā. Šajā skriptā mums ir mainīgs var, lai saglabātu lietotāja nodoto argumenta vērtību. Tad mums ir paziņojums if, kas pārbaudīs, vai argumenta vērtība ir saskaņota vai nē. Ja argumenta vērtība tiek saskaņota ar iekavās norādīto vērtību, tad pirmais atbalss paziņojums tiks izpildīts. Ja vērtība nesakrīt, tiks izpildīts otrais atbalss paziņojums.

Kad mēs izpildām čaulas skripta komandu, tas radīs kļūdu. Izmantojot komandu chmod, mēs varam labot šo kļūdu.

Pēc tam izpildiet čaulas skriptu konkrētajam failam ar kādu argumenta vērtību. Mūsu gadījumā mēs esam norādījuši Aqsa kā argumenta vērtību, kas ir tāda pati kā iekavās parādītā vērtība. Tātad bash skripts izpildīs pirmo atbalss paziņojumu, kā parādīts attēlā.

No otras puses, ja čaulas skriptā norādāt dažādas argumentu vērtības, tas parādīs otru atbalss paziņojumu. Šeit kā argumenta vērtību esmu pievienojis Rimšu, kas atšķiras no paziņojumā if sniegtās vērtības. Tātad bash skripts izpildīs otro atbalss paziņojumu.

Secinājums:

Es ceru, ka šī rokasgrāmata jums ir pietiekami palīdzējusi, lai pārliecinātos, kā nodot argumentus noklusējuma mainīgajiem, nodot argumenta vērtību kā masīvu mainīgajam, iegūt kopējo nodoto argumentu skaitu, argumentu izvadi pa rindām, ierobežot argumentu izvade, izmantojot indeksa numuru, pārbaudot konkrētas vērtības argumentu un daudz ko citu.