Paano Sumulat ng Bash Script sa Linux
Ang mga operating system ay karaniwang may kasamang ilang anyo ng scripting language na magagamit ng mga admin at power user para gumawa ng mga custom na tool. Ang Unix at Linux ay hindi naiiba at may maraming iba’t ibang mga opsyon. Ang pandikit na pinagsasama-sama ang maraming proyekto sa Linux ay ginawa mula sa mga script ng Bash. Ang mga simpleng gawin, ngunit napakalakas na mga script ay maaaring gawin ang lahat mula sa malayuang pag-back up ng buong file system hanggang sa paggawa ng LED flash.
Ang mga script ng Bash ay kumikilos tulad ng sa iba pang mga programming language. Ang code ay tumatakbo linya sa linya sa isang sequence. Maaari tayong gumamit ng conditional logic (pagpili) upang baguhin ang landas na tinatahak ng ating code at ang code ay maaaring umulit at ulitin ang pagpapatupad ng code hanggang sa isang kundisyon ay matugunan o walang katiyakan.
Ang Bash, ang Bourne Again SHell ay isa sa maraming iba’t ibang shell na magagamit sa mga user ng Unix at Linux (Zsh, Ksh, Tcsh, Fish ay iba pa) at karaniwang naka-install sa marami sa mga pangunahing distribusyon. Pinatakbo namin ang Kubuntu 21.10 noong isinusulat ang tutorial na ito, ngunit gagana rin ang parehong code sa isang Raspberry Pi (na may Raspberry Pi OS) o halos anumang iba pang pamamahagi ng Linux.
Sa kung paano ito gagawin namin ang aming mga unang hakbang sa paggawa ng mga script ng Bash na may tatlong halimbawang proyekto. Ang una ay ang kagalang-galang na “Hello World”, pagkatapos ay natutunan namin kung paano lumikha ng mga interactive na script, bago sa wakas ay lumikha ng isang tunay na script upang suriin ang katayuan ng isang site / server. Pagkatapos ay gagawa kami ng karagdagang milya at matutunan kung paano gawin ang aming mga script na executable at magagamit sa buong system.
Paano Sumulat ng Bash Script na “Hello World”.
Magsisimula tayo sa simple sa “Hello World”. Ito ay maaaring mukhang walang halaga, ngunit ang isang hello world test ay kapaki-pakinabang upang maunawaan ang daloy ng trabaho ng paglikha ng isang Bash script, at upang subukan ang pangunahing pag-andar. Gagamitin namin ang nano text editor, ngunit maaari mo ring isulat ang iyong mga script sa isa pang terminal o GUI based text editor.
1. Gumawa ng bagong file, hello.sh at buksan ito gamit ang nano.
nano hello.sh
(Credit ng larawan: Tom’s Hardware)
2. Sa unang linya, tukuyin ang interpreter na gagamitin sa code. Sa kasong ito ito ay Bash.Ang unang bahagi ng linya, #!, ay tinatawag na “shebang” at ito ay nagpapahiwatig ng simula ng isang script.
#!/bin/bash
(Credit ng larawan: Tom’s Hardware)
3. Sa isang bagong linya gamitin echo para mag-print ng string ng teksto sa screen.
echo “Hello World”
(Credit ng larawan: Tom’s Hardware)
4. I-save ang code sa pamamagitan ng pagpindot sa CTRL + X, pagkatapos ay pindutin ang Y at Enter.
5. Patakbuhin ang code mula sa terminal.
bash hello.sh
(Credit ng larawan: Tom’s Hardware)
Ang output ng command ay isang linya ng “Hello World.” Ito ay nagpapatunay na ang aming script ay gumagana at maaari kaming magpatuloy sa isang bagay na medyo mas kawili-wili.
Pagkuha ng User Input sa Bash Scripts
(Credit ng larawan: Tom’s Hardware)
Ang Bash ay isang ganap na nabuong wika, at kasama nito ay makakagawa tayo ng mga interactive na tool at application. Sa halimbawang ito gagawa kami ng isang greeting generator na kukuha ng username at pagkatapos ay pumili ng random na pagbati mula sa isang hanay ng mga pagbati.
1. Gumawa ng bagong file, random-greetings.sh gamit nano.
nano random-greetings.sh
2. Sa unang linya, tukuyin ang interpreter na gagamitin sa code. Sa kasong ito ito ay Bash.
#!/bin/bash
(Credit ng larawan: Tom’s Hardware)
3. Magdagdag ng echo para mag-print ng mensahe sa user.
echo “Welcome to the Tom’s Hardware Greeting Generator”
(Credit ng larawan: Tom’s Hardware)
4. Basahin ang keyboard input ng user, gamit ang prompt para magtanong sa user. Ang input ng user ay nai-save sa isang variable na pangalan.
basahin -p “Ano ang iyong pangalan?: ” pangalan
(Credit ng larawan: Tom’s Hardware)
5. Gumawa ng array pagbati na mag-iimbak ng limang pagbati. Ang array ay isang listahan ng mga item na nakaimbak na may index number. Gamit ang pangalan ng array at ang index number, maaari nating hilahin ang mga item (pagbati) mula sa array.
pagbati[0]=”Hola” bati[1]=”Greetings” bati[2]=”How do” bati[3]=”Hey there” bati[4]”Kamusta”
(Credit ng larawan: Tom’s Hardware)
6. Gumawa ng variable laki na mag-iimbak ng bilang ng mga item sa array.
size=${#greeting[@]}
(Credit ng larawan: Tom’s Hardware)
7. Gumawa ng variable index at mag-imbak ng random na piniling numero mula sa zero hanggang sa laki ng array, sa kasong ito limang item.
index=$(($RANDOM % $laki))
(Credit ng larawan: Tom’s Hardware)
8. Gumamit ng echo upang i-print ang random na piniling pagbati kasama ang pangalan ng user.
echo ${pagbati[$index]} $pangalan
(Credit ng larawan: Tom’s Hardware)
9. I-save ang code sa pamamagitan ng pagpindot sa CTRL + X, pagkatapos ay pindutin ang Y at Enter.
10. Patakbuhin ang code mula sa terminal. Sundin ang mga tagubilin upang makita ang pagbati.
bash random-greetings.sh
(Credit ng larawan: Tom’s Hardware)
Paggamit ng Mga Argumento na may Bash Script
(Credit ng larawan: Tom’s Hardware)
Ang kagandahan ng terminal ay maaari tayong magpasa ng mga argumento, karagdagang mga tagubilin o parameter, sa isang utos. Sa halimbawang ito, magsusulat kami ng bash script upang suriin ang status ng isang URL, na ipinasa bilang argumento.
1. Gumawa ng bagong file site-check.sh at bukas nano.
nano site-check.sh
2. Sa unang linya, tukuyin ang interpreter na gagamitin sa code. Sa kasong ito ito ay Bash.
#!/bin/bash
(Credit ng larawan: Tom’s Hardware)
3. Gamit echo, sumulat ng mensahe sa user upang payuhan sila sa kasalukuyang HTTP response code para sa URL. Ang halaga ng $1 ay ang URL na aming tinukoy bilang argumento.
echo “Ang kasalukuyang tugon ng HTTP para sa ” $1 ” ay…”
(Credit ng larawan: Tom’s Hardware)
4. Lumikha ng variable, tugon upang iimbak ang output ng kulot utos. Gamit ang –write-out na argumento, tinukoy namin na gusto naming makita ang HTTP response code. Ang isa pang argumento, –silent ay titiyakin na hindi namin makikita ang lahat ng output mula sa command spill papunta sa screen. Pagkatapos ay nagpapadala kami ng anumang natitirang output gaya ng mga error sa /dev/null, mahalagang black hole para sa data. Panghuli ginagamit namin ang $1 na argumento (ang aming URL na susuriin) upang makumpleto ang utos.
response=$(curl –write-out “%{http_code}\n” –silent –output /dev/null “$1”)
(Credit ng larawan: Tom’s Hardware)
5. Gamitin echo upang i-print ang HTTP response code sa terminal.
echo “${response}”
(Credit ng larawan: Tom’s Hardware)
6. I-save ang code sa pamamagitan ng pagpindot sa CTRL + X, pagkatapos ay pindutin ang Y at Enter.
7. Patakbuhin ang code mula sa terminal; tandaan na magsama ng buong domain name upang suriin.
bash site-check.sh https://tomshardware.com
(Credit ng larawan: Tom’s Hardware)
Paglikha ng isang system-wide executable Bash Script
Sa ngayon, gumagana nang maayos ang aming mga script, ngunit hindi ito available sa buong system bilang isang executable na file. Baguhin natin yan. Para sa huling bahaging ito, iko-convert namin ang script ng site-check.sh sa isang application na magagamit namin mula sa anumang lokasyon sa drive.
Una kailangan nating gawing executable ang file, pagkatapos ay maaari nating kopyahin ang file sa /usr/bin para gumawa ng executable na available kahit saan.
1. Magbukas ng terminal window at mag-navigate sa site-check.sh.
2. Gamitin chmod upang itakda ang file bilang executable. Ang +x argument ay tumutukoy na ang file ay dapat na maipapatupad.
chmod +x site-check.sh
(Credit ng larawan: Tom’s Hardware)
3. Patakbuhin ang script. Gamit ang ./ inutusan namin ang terminal na magpatakbo ng executable file sa kasalukuyang direktoryo.
./site-check.sh https://bigl.es
(Credit ng larawan: Tom’s Hardware)
4. Kopyahin ang site-cehck.sh sa /usr/bin/ direktoryo, at baguhin ang target na filename upang alisin ang .sh extension. Tandaan na kakailanganin naming gumamit ng sudo dahil ang /usr/bin na direktoryo ay hindi pagmamay-ari ng aming user. Tingnan ang aming tutorial sa mga pahintulot ng user, file at folder para sa higit pang impormasyon.
sudo cp site-check.sh /usr/bin/site-check
(Credit ng larawan: Tom’s Hardware)
5. Takbo site-check upang subukan na ang utos ay gumagana tulad ng inaasahan. Tandaang magsama ng URL na susuriin.
(Credit ng larawan: Tom’s Hardware)