Otu esi emepụta scripts Shell dị mfe na Linux
Ịmepụta edemede shei bụ otu n'ime nkà kachasị mkpa ndị ọrụ Linux kwesịrị inwe n'ọnụ mkpịsị aka ha. Ederede Shell na-arụ nnukwu ọrụ n'imezigharị ọrụ ugboro ugboro nke ga-abụ ihe na-agwụ ike iji ahịrị na-arụ ọrụ n'ahịrị.
N'ime nkuzi a, anyị na-akọwapụta ụfọdụ ọrụ idebe shei nke onye ọrụ Linux ọ bụla kwesịrị inwe.
1. Mepụta Akwụkwọ Mfe Shell
Edemede shei bụ faịlụ nwere ederede ASCII. Anyị ga-amalite site na ịmepụta edemede shea dị mfe, na ime nke a, anyị ga-eji nchịkọta ederede. Enwere ọtụtụ ndezi vim.
Anyị ga-amalite site na ịmepụta edemede dị mfe nke na-egosipụta \Hello ụwa mgbe emechara ya.
$ vim hello.sh
Tapawa ọdịnaya ndị a na faịlụ wee chekwaa.
#!/bin/bash # Print Hello world message echo "Hello World!"
Ka anyị gafere ahịrị script shei n'ahịrị.
- Ahịrị nke mbụ –
#!/bin/bash
– ka a maara dị ka nkụnye eji isi mee shebang. Nke a bụ ihe nrụpụta pụrụ iche nke na-egosi mmemme a ga-eji kọwaa edemede ahụ. N'okwu a, nke a ga-abụ shei bash nke /bin/bash gosipụtara. Enwere asụsụ scripting ndị ọzọ dị ka Python bụ nke#!/usr/bin/python3
na-egosi na Perl onye isi shebang ya bụ#!/usr/bin/perl
- Ahịrị nke abụọ bụ okwu. Okwu bụ nkwupụta na-akọwa ihe edemede shei na-eme na anaghị eme ya mgbe ederede na-agba ọsọ. A na-ebute akara mgbe niile site na akara hash
#
. - Ahịrị ikpeazụ bụ iwu na-ebipụta ozi ‘Hello World’ n’ọnụ ọnụ.
Nzọụkwụ na-esote bụ ime ka edemede ahụ nwee ike ịme ya site n'ịnye ikikere iji chmod iwu dịka egosiri.
$ chmod +x hello.sh
N'ikpeazụ, jiri nke ọ bụla n'ime iwu ndị a na-agba ọsọ script shei:
$ bash hello.sh OR $ ./hello.sh
2. Iji Okwu Okwu mebie Usoro
Dị ka asụsụ mmemme ndị ọzọ, a na-eji nkwupụta ọnọdụ na bash scripting mee mkpebi, na-enwe naanị ntakịrị mgbanwe na syntax. Anyị ga-ekpuchi ma ọ bụrụ, ma ọ bụrụ-ọzọ, na nkwupụta ọnọdụ elif.
Enwere ike iji nkwupụta ọ bụrụ na nwalee otu ọnọdụ ma ọ bụ ọtụtụ. Anyị ga-amalite site na iji isi okwu nke nkwupụta iji nwalee otu ọnọdụ. Akọwapụtara nkwupụta ahụ ọ bụrụ site na ngọngọ ọ bụrụ ... fi
.
if command then statement fi
Ka anyị leba anya na edemede shei dị n'okpuru.
#!/bin/bash echo 'Enter the score' read x if [[ $x == 70 ]]; then echo 'Good job!' fi
Edemede shei dị n'elu na-akpali onye ọrụ ịnye akara nke echekwara na mgbanwe x. Ọ bụrụ na akara ahụ dabara na 70, edemede ahụ ga-eweghachi mmepụta\Ezi ọrụ! A na-eji onye na-arụ ọrụ ntụnyere ==
nwalee ma ọ bụrụ na akara abanye, nke echekwara na mgbanwe x, bụ otu. ruo 100.
Ndị ọrụ ntụnyere ndị ọzọ ị nwere ike iji gụnyere:
-eq
- Haha na-ne
- Haghị nhata-lt
- Ihe na-erughị-le
- Ihe na-erughị ma ọ bụ ha nhata-lt
- Ihe na-erughị-ge
- Karịrị ma ọ bụ haha
Dịka ọmụmaatụ, ngọngọ nkwupụta ọ bụrụ n'okpuru na-ebipụta 'Work Harder' ma ọ bụrụ na akara ntinye bụ uru ọ bụla na-erughị 50.
if [[ $x -lt 50 ]]; then echo 'Work Harder!' fi
Maka ọnọdụ ebe ị nwere nsonaazụ abụọ nwere ike ịpụta: - ma nke a ma ọ bụ nke ahụ - nkwupụta ma ọ bụrụ-ọzọ na-abịa na aka.
if command then statement1 else statement2 fi
Edemede dị n'okpuru na-agụ akara ntinye wee lelee ma ọ karịrị ma ọ bụ hà nhata 70.
Ọ bụrụ na akara ahụ karịrị ma ọ bụ hà nhata 70, ị ga-enweta ozi 'nnukwu ọrụ, ị gafere!' Agbanyeghị, ọ bụrụ na akara ahụ dara n'okpuru 70, a ga-ebipụta nsonaazụ 'Ị dara'.
#!/bin/bash echo 'Enter the score' read x if [[ $x -ge 70 ]]; then echo 'Great job, You passed!' else echo 'You failed' fi
N'ọnọdụ ebe enwere ọtụtụ ọnọdụ na nsonaazụ dị iche iche, a na-eji nkwupụta elif-ọzọ mee ihe. Okwu a na-ewere usoro a.
if condition1 then statement1 elif condition2 then statement2 else statement3 fi
Dịka ọmụmaatụ, anyị nwere edemede maka lọtrị nke na-enyocha ma ọnụọgụgụ etinyere bụ 90, 60 ma ọ bụ 30.
#!/bin/bash echo 'Enter the score' read x if [[ $x -eq 90 ]]; then echo “You have won the First Prize” elif [[ $x -eq 60 ]]; then echo “You have won the Second Prize” elif [[ $x -eq 30 ]]; then echo “You have won the Second Prize” else echo “Please try again” fi
3. Iji Okwu Ọ bụrụ na NA mgbagha
Ị nwere ike iji nkwupụta ọ bụrụ n'akụkụ onye na-ahụ maka mgbagha AND iji rụọ ọrụ ma ọ bụrụ na ọnọdụ abụọ nwere afọ ojuju. A na-eji onye na-arụ ọrụ &&
gosi NA mgbagha.
#!/bin/bash echo 'Please Enter your user_id' read user_id echo 'Please Enter your tag_no' read tag_id if [[ ($user_id == “tecmint” && $tag_id -eq 3990) ]]; then echo “Login successful” else echo “Login failure” fi
5. Iji Okwu Ọ bụrụ na OR Logic
Mgbe ị na-eji mgbagha OR, nke akara ||
nọchiri anya ya, ma otu n'ime ọnọdụ a ga-eju afọ na edemede iji nye nsonaazụ a tụrụ anya ya.
#!/bin/bash echo 'Please enter a random number' read number if [[ (number -eq 55 || number -eq 80) ]]; then echo 'Congratulations! You’ve won' else echo 'Sorry, try again' fi
Jiri Nrụpụta Looping
Bash loops na-enye ndị ọrụ ohere ịrụ ọtụtụ ọrụ ruo mgbe enwetara nsonaazụ ụfọdụ. Nke a na-enyere aka n'ịrụ ọrụ ugboro ugboro. Na ngalaba a, anyị ga-elele ụfọdụ loops nke ị ga-ahụkwa n'asụsụ mmemme ndị ọzọ.
Nke a bụ otu n'ime loops kachasị mfe iji rụọ ọrụ. Okwu syntax dị nnọọ mfe:
while <some test> do commands done
Oge loop dị n'okpuru na-edepụta nọmba niile site na 1 ruo 10 mgbe emechara ya.
#!/bin/bash # A simple while loop counter=1 while [ $counter -le 10 ] do echo $counter ((counter++)) done
Ka anyị kparịta oge loop:
A na-ebunye counter na-agbanwe agbanwe ka ọ bụrụ 1. Ma mgbe mgbanwe ahụ na-erughị ma ọ bụ hà nhata 10, a ga-abawanye uru nke counter ahụ ruo mgbe afọ juputara ọnọdụ ahụ. Ahịrị echo $counter na-ebipụta nọmba niile site na 1 ruo 10.
Dị ka oge loop, a na-eji maka loop eme ihe ugboro ugboro. I.e. kwugharịa ogbugbu koodu ugboro ole o kwere mee nke onye ọrụ kọwapụtara ya.
Okwu syntax bụ:
for var in 1 2 3 4 5 N do command1 command2 done
Maka loop dị n'okpuru na-eweghachi site na 1 ziri ezi ruo 10 wee hazie ụkpụrụ ha na ihuenyo.
Ụzọ ka mma iji nweta nke a bụ ịkọwapụta nsoro site na iji ihe nkwado abụọ mpịaji { }
dị ka egosiri kama ịpị nọmba niile.
#!/bin/bash # Specify range in a for loop for num in {1..10} do echo $num done
Ụdị ọnọdụ Bash
Oke ọnọdụ bụ mgbanwe pụrụ iche a na-ezo aka na edemede mgbe a na-agafe ụkpụrụ na shei mana enweghị ike ikenye ya. Ọnọdụ ọnọdụ na-esi na $0 $1 $2 $3 …… ruo $9. Na agafe uru $9, a ga-ejikọta parampat ndị ahụ na braket mkpirisi dịka & # 36 {10}, & # 36 {11} … na ndị ọzọ.
Mgbe ị na-eme edemede ahụ, oke ọnọdụ ọnọdụ mbụ nke bụ $0 na-ewere aha edemede shei. Oke $1 na-ewe mgbanwe nke mbụ na-agafe na ọdụ, $2 na-ewere nke abụọ, $3 nke atọ na ihe ndị ọzọ.
Ka anyị mepụta ule edemede.sh dị ka egosiri.
#!/bin/bash echo "The name of the script is: " $0 echo "My first name is: " $1 echo "My second name is: " $2
Na-esote, mebie edemede ahụ wee nye aha nke mbụ na nke abụọ dịka arụmụka:
# bash test.sh James Kiarie
Site na mmepụta, anyị nwere ike ịhụ na mgbanwe mbụ a na-ebipụta bụ aha nke shei script, na nke a, test.sh. Mgbe nke ahụ gasịrị, a na-ebipụta aha ndị ahụ kwekọrọ na ọnọdụ ọnọdụ akọwapụtara na edemede shei.
Usoro ọnọdụ bara uru n'ihi na ha na-enyere gị aka ịhazi data a na-etinye kama ịnye ọnụ ahịa n'ụzọ doro anya na mgbanwe.
Koodu ọpụpụ Shell Command
Ka anyị malite site n'ịza ajụjụ dị mfe, Gịnị bụ koodu ọpụpụ?
Iwu ọ bụla nke onye ọrụ ma ọ bụ edemede shei gburu na shei nwere ọkwa ọpụpụ. Ọkwa ọpụpụ bụ ọnụọgụ.
Ọkwa ọpụpụ nke 0 na-egosi na emechara iwu ahụ nke ọma na-enweghị mperi ọ bụla. Ihe ọ bụla n'etiti 1 ruo 255 na-egosi na iwu ahụ dara ma ọ bụ na o meghị nke ọma.
Ka ịchọta ọkwa ọpụpụ nke iwu, jiri $?
mgbanwe Shell.
Ọkwa ọpụpụ nke 1 na-atụ aka na njehie izugbe ma ọ bụ njehie ọ bụla na-agaghị ekwe omume dị ka idezi faịlụ na-enweghị ikike sudo.
Ọkwa ọpụpụ nke 2 na-atụ aka na ojiji nke iwu na-ezighi ezi ma ọ bụ mgbanwe shei wuru n'ime.
Ọkwa ọpụpụ 127 na-arụtụ aka na iwu iwu na-akwadoghị nke na-ebutekarị njehie 'iwu ahụghị'.
Na-ahazi mmepụta nke Shell Command n'ime edemede
Na bash scripting, ị nwere ike ịchekwa mmepụta nke iwu na mgbanwe maka ojiji n'ọdịnihu. A na-akpọkwa nke a dị ka nnọchi iwu shei ma enwere ike nweta ya n'ụzọ ndị a.
variable=$(command) OR variable=$(/path/to/command) OR variable=$(command argument 1 argument 2 ...)
Dịka ọmụmaatụ, ịnwere ike ịchekwa iwu ụbọchị na mgbanwe a na-akpọ taa wee kpọọ script shei iji kpughee ụbọchị dị ugbu a.
#!/bin/bash today=$(date) echo “Today is $today”
Ka anyị were ihe atụ ọzọ. Ka e were ya na ịchọrọ ịchọta ndị ọrụ nbanye ziri ezi na sistemụ Linux gị. Kedu ka ị ga-esi mee ya? Nke mbụ, a na-echekwa ndepụta nke ndị ọrụ niile (ma sistemụ, usoro na ndị ọrụ nbanye) na faịlụ /etc/passwd.
Iji lelee faịlụ ahụ, ị ga-achọ iji iwu grep iji chọọ ndị ọrụ nwere njirimara/bin/bash wee jiri iwu ịkpụ -c 1-10 dị ka egosiri iji gosipụta mkpụrụedemede 10 mbụ nke aha.
Anyị echekwala iwu pusi na mgbanwe login_users.
#!/bin/bash login_users=$(cat /etc/passwd | grep /bin/bash | cut -c 1-10) echo 'This is the list of login users: echo $login_users
Nke a na-eweta nkuzi anyị maka ịmepụta scripts shei dị mfe na njedebe. Anyị na-atụ anya na ị hụrụ nke a bara uru.