Paano ako Makakapasa ng Argumento sa isang Bash Script?

How Do I Pass Argument Bash Script



Karamihan sa mga gumagamit ng Linux Mint 20 ay natigil kapag pumasa sa isang argument sa isang bash script. Maaari mong ipasa ang mga argument sa anumang bash script kapag naisakatuparan ito. Mayroong maraming mga simple at kapaki-pakinabang na paraan upang maipasa ang mga argumento sa isang bash script. Sa gabay ng artikulong ito, ipapaalam namin sa iyo ang tungkol sa ilang mga napakadaling paraan upang pumasa at gumamit ng mga argumento sa iyong bash script.

Pagpasa ng Mga Argumento Gamit ang Mga Default na variable:

Lumikha ng isang bagong file na may anumang pangalan gamit ang touch command, hal. File.sh.







$hawakanfilename



Buksan ang bagong nilikha na file at magdagdag ng ilang bash script dito. Nagdagdag ako ng ilang mga default na variable, hal. Dahil dito ang $ 1, $ 2, at $ 3. Anumang mga argumento na ipapasa sa terminal ay maiimbak sa mga nakasaad na variable.







Kailangan mong patakbuhin ang file na ito gamit ang ./ utos na sinusundan ng ilang mga argumento. Tulad ng nakikita mo sa larawan na kapag naipasa ko ang mga argumento, nangyayari ang isang error: Tinanggihan ang pahintulot. Dahil ito sa file na ito ay walang mga karapatan sa pagpapatupad.

$./filename argument1 argument2 argument

Kaya upang maibigay ang mga karapatan sa pagpapatupad sa file na ito, gamitin ang utos ng sudo chmod upang gawin ito.



$sudo chmod+ x filename

Ngayon, muling patakbuhin ang file gamit ang parehong utos sa itaas. Sa pagkakataong ito ay nagbigay ako ng iba't ibang mga argumento. Makikita mo ang bagong naipasa na mga argumento na nakaimbak sa mga default na variable.

Pagpasa ng Pangalan ng Shell Script bilang Argument:

Ngayon, gamit ang parehong lumang file file.sh na may kaunting pagbabago sa mga default na variable nito. Kailangan mong idagdag ang variable na $ 0 sa script tulad ng ipinakita.

Sa pagpapatakbo ng pareho ./ shell script command, ang pangalan ng iyong shell script, hal. ./filename ay maiimbak sa variable na $ 0 bilang isang argument.

Pagpasa ng Mga Argumento bilang isang Array sa Variable:

Simula sa parehong file file.sh, kailangan mong magdagdag ng ilang mga karagdagang linya sa lumang script. Ipahayag ang isang variable na pinangalanang array. Magdagdag ng isang default na variable [protektado ng email] na mag-iimbak ng mga argumento na ipinasok ng gumagamit bilang isang array. Ang mga argumento ay mai-parse sa variable array. Ipapakita ng huling linya ang lahat ng mga argumento ng variable na array na pinagsunod-sunod sa bilang ng index.

Ipatupad ang ./ shell script. Makikita mo na ipapakita nito ang mga argumento o halagang nakaimbak bilang isang array sa [protektado ng email] na na-parse sa variable na array ngunit hindi ang pangalan ng shell script sa pangalawang pahayag ng echo. Magkakaroon ka ng sumusunod na output.

$./filename argument1 argument2 argument

Gumamit ng parehong file na may parehong script. Alisin lamang ang $ {array [3]} mula sa huling linya na malinaw sa larawan.

Matapos maipatupad ang ./ utos, makikita mo ang isang katulad na output tulad ng nakuha mo sa halimbawa sa itaas nang walang pagbabago.

Maaari ka ring makakuha ng parehong resulta sa pamamagitan ng pagpapalit sa huling linya ng bash script ng isang solong salita. Kailangan mo lamang idagdag ang [protektado ng email] sa pahayag ng echo, at ipapakita nito ang mga argumento na naroroon sa variable na array.

Kaya't tumatakbo muli ang utos na ./, makakakuha ka ng parehong mga resulta.

Suriin ang Kabuuang Bilang ng Mga Argumentong Naipasa:

Sa kabaligtaran, kung nais mong malaman ang kabuuang bilang ng mga argument na naipasa ng gumagamit, magagawa mo rin iyon. Para sa hangaring ito, kailangan mo lamang palitan ang [email protektado] ng $ # sa echo.

Muli ang pagpapatupad ng ./ utos, Makikita mo ngayon ang buong figure ng mga argumentong naipasa sa script. Sa aming kaso, 3 mga argumento ang naipasa bilang halaga.

Lumikha ng Line by Line Output ng Mga Argumento:

Lumikha ng isang bagong file test.sh sa direktoryo ng bahay. Idagdag ang bash script tulad ng ipinakita.

Patakbuhin ngayon ang parehong lumang utos na may iba't ibang mga argumento. Una, makikita mo ang error: Tinanggihan ang pahintulot.

Kailangan mong isagawa ang utos ng chmod upang bigyan ang file ng mga pribilehiyong ito. Pagkatapos nito, patakbuhin muli ang ./ shell script utos. At makukuha mo ang linya sa pamamagitan ng linya na pinagsunod-sunod na output ng mga argumento.

Limitahan ang variable sa pamamagitan ng Argument Index Number:

Kung nais mong limitahan ang variable gamit ang index number, madali mo itong magagawa. Magdagdag ng mga kulot na bracket pagkatapos ng $ sign at idagdag ang numero ng index ng argument na nais mong ipakita bago ang iba pang mga argumento.

Kung ang mga argumento na ibinigay ng mga gumagamit ay mas mababa sa numero ng index na ibinigay sa variable na limitasyon, makakakuha ka ng isang walang laman na halaga ng argument. Bilang isang halimbawa, nagbigay ako ng 4 na mga argumento, ngunit ibinigay ko ang halagang 05 argumento upang maipakita. Sa sitwasyong ito, ang variable ay ipapakita nang walang laman dahil ang pang-limang argumento ay hindi naipasa.

Ngunit kapag naipasa mo ang pantay o higit pang bilang ng mga argumento sa utos, makukuha mo ang halagang ipinakita sa resulta tulad ng ipinakita.

Sinusuri ang Tiyak na Mga Pakikipag-usap sa Halaga:

Gumawa ng isang bagong file na may pangalang Check.sh sa iyong direktoryo sa bahay. Idagdag ang parehong bash script tulad ng ipinakita sa imaheng nasa ibaba. Sa script na ito, mayroon kaming variable var upang maiimbak ang halagang argument na ipinasa ng gumagamit. Pagkatapos mayroon kaming isang pahayag kung, na susuriin para sa halaga ng argumento na maitugma o hindi. Kung ang halaga ng argumento ay naitugma sa halagang ibinigay sa panaklong, pagkatapos ang unang pahayag ng echo ay papatayin. Kung ang halaga ay hindi tumutugma, ang pangalawang pahayag ng echo ay papatayin.

Kapag pinatakbo namin ang command ng shell script, magtataas ito ng isang error. Sa pamamagitan ng paggamit ng utos ng chmod, maaari nating maitama ang error na ito.

Pagkatapos nito, ipatupad ang shell script para sa partikular na file na may ilang halaga ng argument. Sa aming kaso, naibigay namin ang Aqsa bilang isang halaga ng argument, na kapareho ng halagang ipinapakita sa panaklong. Kaya't ang bash script ay magsasagawa ng unang pahayag ng echo tulad ng ipinakita.

Sa kabilang banda, kung magbigay ka ng magkakaibang mga halaga ng argument sa shell script, ipapakita nito ang iba pang pahayag ng echo. Dito, idinagdag ko ang Rimsha bilang isang halaga ng argument, na naiiba sa halagang ibinigay sa kung pahayag. Kaya't ang bash script ay papatayin ang pangalawang pahayag ng echo.

Konklusyon:

Inaasahan kong ang gabay na ito ay nakatulong sa iyo sapat upang magkaroon ng isang malakas na mahigpit na pagkakahawak sa kung paano ipasa ang mga argumento sa mga default na variable, ipasa ang halaga ng argumento bilang isang array sa isang variable, makuha ang kabuuang bilang ng mga argumento na naipasa, linya ng linya ng output ng mga argumento, limitahan ang argumento output gamit ang numero ng index, pagsuri sa tukoy na argumento ng halaga at marami pa.