Yadda ake ƙirƙirar Rubutun Harsashi Mai sauƙi a cikin Linux


Kirkirar rubutun harsashi shine ɗayan mahimman ƙwarewar da masu amfani da Linux zasu samu a ƙarshen yatsunsu. Rubutun Shell suna da babban matsayi a cikin sarrafa kansa ayyukan maimaitawa wanda in ba haka ba zai zama da wahala aiwatar da layi ba layi.

A cikin wannan darasin, muna haskaka wasu ayyukan rubutun harsashi wanda yakamata kowane mai amfani da Linux ya samu.

1. Createirƙiri Rubutun Shell Mai Sauƙi

Rubutun harsashi fayil ne wanda ya ƙunshi rubutun ASCII. Zamu fara da ƙirƙirar rubutun harsashi mai sauƙi, kuma don yin wannan, zamuyi amfani da editan rubutu. Akwai adadi na vim da yawa.

Zamu fara da ƙirƙirar wani rubutu mai sauƙi wanda ke nuna\"Sannu duniya" idan aka zartar dashi.

$ vim hello.sh

Manna abubuwan da ke gaba a cikin fayil din kuma adana.

#!/bin/bash
# Print Hello world message
echo "Hello World!"

Bari mu bi layin rubutun harsashi ta layi.

    Layi na farko - #!/bin/bash - an san shi da shebang header. Wannan gini ne na musamman wanda yake nuna wane shirin za'a yi amfani dashi don fassarar rubutun. A wannan yanayin, wannan zai zama baƙon bash wanda aka nuna ta/bin/bash. Akwai wasu yarukan rubutun kamar su Python wanda aka nuna ta #!/Usr/bin/python3 da Perl wanda aka nuna taken shebang da #!/Usr/bin/perl . Layi na biyu tsokaci ne. Wani tsokaci bayani ne wanda ke bayyana abin da rubutun harsashi ke yi kuma ba a aiwatar dashi yayin gudanar da rubutun. Sharhi koyaushe yana gaba da alamar hash # . Layi na ƙarshe shine umarnin da ke buga saƙon 'Barka da Duniya' a tashar.

Mataki na gaba shine sanya rubutun zartarwa ta hanyar sanya izinin aiwatarwa ta amfani da umarnin chmod kamar yadda aka nuna.

$ chmod +x  hello.sh

A ƙarshe, gudanar da rubutun harsashi ta amfani da ɗayan umarnin:

$ bash hello.sh
OR
$ ./hello.sh

2. Amfani da Bayanin Yanayi don aiwatar da Code

Kamar sauran harsunan shirye-shiryen, ana amfani da bayanan sharaɗi a cikin rubutun bash don yanke shawara, tare da ɗan bambanci kaɗan a cikin rubutun. Za mu rufe idan, idan-kuma, da kuma maganganun sharaɗi.

Za a iya amfani da bayanin don gwada yanayi ɗaya ko yawa. Zamu fara da amfani na asali na idan bayanin don gwada yanayin guda. Idan an bayyana bayanin ta hanyar idan ... fi toshe.

if command
then
  statement
fi

Bari mu duba rubutun harsashi a ƙasa.

#!/bin/bash
echo 'Enter the score'
read x

if [[ $x == 70 ]]; then
  echo 'Good job!'
fi

Rubutun harsashi na sama ya sa mai amfani ya samar da maki wanda aka adana shi cikin canji x. Idan maki ya yi daidai da 70, rubutun zai dawo da sakamakon\"Aiki mai kyau!". zuwa 100.

Sauran kwastomomin kwatancen da zaku iya amfani da su sun haɗa da:

  • -eq - Daidaita zuwa
  • -ne - Ba ya daidaita da
  • -lt - Kasa da
  • -le - Kasa da ko daidai da
  • -lt - Kasa da
  • -ge - Mafi girma ko daidai da

Misali, idan-sanarwa toshe da ke ƙasa ana fitar da ‘Aiki Mai Wuya’ idan sakamakon shigar da kowane darajar da ke ƙasa da 50.

if [[ $x -lt 50 ]]; then
  echo 'Work Harder!'
fi

Ga yanayi inda kuke da sakamakon 2 masu yuwuwa: - ko wannan ko wancan - bayanin idan-to ya zo da sauki.

if command
then
  statement1
else
  statement2
fi

Rubutun da ke ƙasa yana karanta ƙididdigar shigarwa kuma yana bincika ko ya fi girma ko daidai da 70.

Idan maki ya fi girma ko daidai da 70, za ka sami saƙon ‘Babban aiki, Ka wuce!’. Koyaya, idan maki ya faɗi ƙasa da 70, za a buga fitowar 'Ka gaza'.

#!/bin/bash

echo 'Enter the score'

read x

if [[ $x -ge 70 ]]; then
  echo 'Great job, You passed!'
else
  echo  'You failed'
fi

A cikin yanayin yanayin inda akwai yanayi da yawa da sakamako daban-daban, ana amfani da bayanin if-elif-else. Wannan bayanin yana ɗaukar tsari mai zuwa.

if condition1
then
  statement1
elif condition2
then
  statement2
else
  statement3
fi

Misali, muna da rubutun don irin caca wanda ke bincika idan lambar da aka shigar ta kasance ko 90, 60 ko 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. Amfani da If Statement with AND Logic

Kuna iya amfani da idan sanarwa tare da AND mai aiki da hankali don aiwatar da aiki idan yanayi biyu ya gamsu. Ana amfani da mai amfani da && don nuna ma'anar AND.

#!/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. Yin amfani da Idan Bayanin tare da KO hankali

Lokacin amfani da dabaru na OR, wannan alama ce ta || , ko dai ɗayan sharuɗɗan yana buƙatar gamsuwa da rubutun don ba da sakamakon da ake tsammani.

#!/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

Yi amfani da Gyaran Gyara

Bash madaukai yana ba masu amfani damar yin jerin ayyuka har sai an sami wani sakamako. Wannan ya zo cikin sauki wajen aiwatar da ayyuka maimaitawa. A wannan ɓangaren, za mu ɗan leƙa wasu madaukai waɗanda za ku kuma samu a cikin wasu yarukan shirye-shirye.

Wannan ɗayan mafi sauƙi madaukai ne don aiki tare. Aikin gabatarwa yana da sauki:

while  <some test>
do
 commands
done

Yayinda madauki a ƙasa ya lissafa duk lambobin daga 1 zuwa 10 lokacin aiwatarwa.

#!/bin/bash
# A simple while loop
counter=1
while [ $counter -le 10 ]
 do
echo $counter
 ((counter++))
done

Bari mu tattauna yayin madauki:

An fara lissafin mai canjin canji zuwa 1. Kuma yayin da mai canjin ya kasa ko yayi daidai da 10, za a kara darajar kan teburin har sai yanayin ya cika. Layin yana amsa $counter yana buga dukkan lambobi daga 1 zuwa 10.

Kamar yayin madauki, ana amfani da madauki don aiwatar da lambar ba tare da izini ba. Ina maimaita aiwatar da lambar sau sau yadda mai yiwuwa ya bayyana ta mai amfani.

A tsari ne:

for var in 1 2 3 4 5 N
do
 command1
 command2
done

Na madauki da ke ƙasa ya bi ta 1 dama zuwa 10 kuma yana aiwatar da ƙimominsa akan allon.

Hanya mafi kyau don cimma wannan ita ce bayyana ma'anar kewayon ta amfani da takalmin madauri biyu {} kamar yadda aka nuna maimakon buga duk lambobin.

#!/bin/bash
# Specify range in a for loop

for num in {1..10}
do
  echo $num
done

Bash Matsayin Matsayi

Matakan matsayi shine canji na musamman wanda aka ambata a cikin rubutun lokacin da aka wuce ƙimomi akan harsashi amma ba za a iya sanya shi ba. Sigogin matsayi suna farawa daga $0 $1 $2 $3 …… zuwa $9. Bayan ƙimar $9, dole ne sigogin a haɗe a cikin madauri masu ƙarfi misali & # 36 {10}, & # 36 {11}… da sauransu.

Lokacin aiwatar da rubutun, ma'aunin matsayi na farko wanda shine $0 ya ɗauki sunan rubutun harsashi. Matakan $1 yana ɗaukar farkon canji wanda aka wuce akan tashar, $2 yana ɗaukar na biyu, $3 na uku da sauransu.

Bari mu kirkiro gwajin rubutu.sh kamar yadda aka nuna.

#!/bin/bash
echo "The name of the script is: " $0
echo "My first name is: " $1
echo "My second name is: " $2

Na gaba, aiwatar da rubutun kuma samar da suna na farko da na biyu azaman dalilai:

# bash test.sh James Kiarie

Daga fitarwa, zamu iya ganin cewa farkon canji wanda aka buga shine sunan rubutun harsashi, a wannan yanayin, test.sh. Bayan haka, ana buga sunayen daidai da sifofin matsayi waɗanda aka bayyana a cikin rubutun harsashi.

Sigogin matsayi suna da amfani ta yadda suke taimaka maka tsara bayanan da ake shigarwa maimakon sanya ƙima ga mai canji a bayyane.

Lambobin Fita na Dokar Shell

Bari mu fara da amsa tambaya mai sauƙi, Menene lambar fita?

Duk umarnin da mai amfani ko rubutun harsashi ya zartar yana da matsayin fita. Matsayin fita lamba lamba ne.

Matsayin fita na 0 yana nuna cewa umarnin da aka aiwatar cikin nasara ba tare da kuskure ba. Duk wani abu tsakanin 1 zuwa 255 yana nuna cewa umarnin baiyi nasara ba ko kuma baiyi nasara ba.

Don neman matsayin fita na umarni, yi amfani da $? Shell mai canji.

Matsayin fita na 1 yana nuna kuskuren gaba ɗaya ko duk wani kuskuren da ba'a yarda dashi ba kamar gyaran fayiloli ba tare da izinin sudo ba.

Matsayin fita na maki 2 zuwa kuskuren amfani da umarni ko ginanniyar harsashi mai sauƙi.

Matsayin fita 127 yana nuni zuwa haramtaccen umarni wanda yawanci yana haifar da kuskuren 'umarnin da ba'a samo ba'.

Fitar da Umurnin Shell a cikin Rubutu

A cikin rubutun bash, zaku iya adana fitowar umarni a cikin canji don amfanin gaba. Wannan kuma ana kiranta azaman maye gurbin umarnin harsashi kuma ana iya samun sa ta waɗannan hanyoyi.

variable=$(command)
OR
variable=$(/path/to/command)
OR
variable=$(command argument 1 argument 2 ...)

Misali, zaka iya adana umarnin kwanan wata a cikin canji da ake kira yau kuma ka kira rubutun harsashi don bayyana kwanan wata.

#!/bin/bash

today=$(date)

echo “Today is $today”

Bari mu dauki wani misali. A ce kana son samun ingantattun masu amfani da hanyar shiga kan tsarin Linux ɗin ka. Ta yaya za ku ci gaba? Da farko, jerin duk masu amfani (duka tsarin, tsari, da masu amfani da shiga) an adana su cikin fayil/etc/passwd.

Don duba fayil ɗin, kuna buƙatar amfani da umarnin grep don bincika masu amfani tare da/bin/bash sifa da amfani da yanke -c 1-10 kamar yadda aka nuna don nuna haruffa 10 na farko na sunayen.

Mun adana umarnin kyanwa zuwa canjin mai shiga da shiga.

#!/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

Wannan yana kawo mana darasi akan ƙirƙirar rubutun harsashi mai sauƙi zuwa ƙarshe. Muna fatan kun sami wannan mai mahimmanci.