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.