Bash ስክሪፕቶች: መጀመር

Bash ስክሪፕቶች: መጀመር
Bash ስክሪፕቶች ክፍል 2: Loops
Bash scripts, ክፍል 3: የትእዛዝ መስመር አማራጮች እና ማብሪያዎች
Bash ስክሪፕቶች, ክፍል 4: ግብዓት እና ውፅዓት
የባሽ ስክሪፕቶች፣ ክፍል 5፡ ምልክቶች፣ የበስተጀርባ ተግባራት፣ የስክሪፕት አስተዳደር
Bash Scripts፣ ክፍል 6፡ ተግባራት እና የቤተ መፃህፍት ልማት
Bash ስክሪፕቶች፣ ክፍል 7፡ ሴድ እና የቃላት አቀናባሪ
ባሽ ስክሪፕቶች፣ ክፍል 8፡ የ awk ውሂብ ሂደት ቋንቋ
Bash ስክሪፕቶች ክፍል 9: መደበኛ መግለጫዎች
Bash Scripts ክፍል 10፡ ተግባራዊ ምሳሌዎች
የባሽ ስክሪፕቶች፣ ክፍል 11፡ የሚጠበቁ እና በይነተገናኝ መገልገያዎችን በራስ ሰር መስራት

ዛሬ ስለ ባሽ ስክሪፕቶች እንነጋገራለን. ይህ - የትእዛዝ መስመር ስክሪፕቶች, ለባሽ ቅርፊት የተፃፈ. እንደ zsh፣ tcsh፣ ksh ያሉ ሌሎች ዛጎሎች አሉ ነገርግን ባሽ ላይ እናተኩራለን። ይህ ቁሳቁስ ለሁሉም ሰው የታሰበ ነው, ብቸኛው ሁኔታ የመሥራት ችሎታ ነው የትእዛዝ መስመር ሊኑክስ

Bash ስክሪፕቶች: መጀመር

የትዕዛዝ መስመር ስክሪፕቶች ከቁልፍ ሰሌዳው ሊገቡ ፣ በፋይሎች ውስጥ ተሰብስበው በአንድ የጋራ ዓላማ ሊጣመሩ የሚችሉ ተመሳሳይ ትዕዛዞች ስብስቦች ናቸው። በተመሳሳይ የቡድኖቹ ሥራ ውጤት ራሱን የቻለ ዋጋ ሊኖረው ወይም ለሌሎች ቡድኖች ግብአት ሆኖ ሊያገለግል ይችላል። ስክሪፕቶች በተደጋጋሚ የሚከናወኑ ድርጊቶችን በራስ ሰር የሚያደርጉበት ኃይለኛ መንገድ ነው።

Bash ስክሪፕቶች: መጀመር

ስለ ትዕዛዙ መስመር ከተነጋገርን ፣ በአንድ ጊዜ ብዙ ትዕዛዞችን እንዲፈጽሙ ይፈቅድልዎታል ፣ ከሴሚኮሎን ጋር ያስገቡ-

pwd ; whoami

በእውነቱ፣ ይህንን በእርስዎ ተርሚናል ውስጥ ከሞከሩት፣ ሁለት ትዕዛዞችን የሚጠቀም የመጀመሪያዎ ባሽ ስክሪፕት አስቀድሞ ተጽፏል። እንደዚህ ይሰራል። ቡድን መጀመሪያ pwd ስለአሁኑ የስራ ማውጫ፣ ከዚያም ትዕዛዙን መረጃ ያሳያል whoamiእንደ የገቡበት ተጠቃሚ መረጃ ያሳያል።

ይህንን አቀራረብ በመጠቀም የፈለጉትን ያህል ትዕዛዞችን በአንድ መስመር ላይ ማዋሃድ ይችላሉ, ገደቡ ወደ ፕሮግራሙ ሊተላለፉ የሚችሉት ከፍተኛው የክርክር ብዛት ብቻ ነው. ይህንን ገደብ በሚከተለው ትዕዛዝ መግለፅ ይችላሉ፡

getconf ARG_MAX

የትእዛዝ መስመር በጣም ጥሩ መሳሪያ ነው, ነገር ግን በሚፈልጉበት ጊዜ ሁሉ ትዕዛዞችን ማስገባት አለብዎት. በአንድ ፋይል ላይ የትእዛዞችን ስብስብ ብንጽፍ እና በቀላሉ ያንን ፋይል ለመፈጸም ብንደውልስ? በእርግጥ, የምንናገረው ፋይል የትእዛዝ መስመር ስክሪፕት ይባላል.

የባሽ ስክሪፕቶች እንዴት እንደሚሠሩ

ትዕዛዙን በመጠቀም ባዶ ፋይል ይፍጠሩ touch. በመጀመሪያው መስመር ላይ የትኛውን ሼል እንደምንጠቀም መግለፅ ያስፈልግዎታል. ፍላጎት አለን። bash, ስለዚህ የፋይሉ የመጀመሪያ መስመር የሚከተለው ይሆናል:

#!/bin/bash

በዚህ ፋይል ውስጥ ሌላ ቦታ፣የሃሽ ምልክቱ ዛጎሉ የማይሰራውን አስተያየት ለማመልከት ጥቅም ላይ ይውላል። ነገር ግን፣ የመጀመሪያው መስመር ልዩ ጉዳይ ነው፣ እሱ የድጋፍ ነጥብ ተከትሎ የፓውንድ ምልክት ነው (ይህ ቅደም ተከተል ይባላል) ሼባንግ) እና ወደ መንገድ bash, ስክሪፕቱ በተለይ ለተፈጠረበት ስርዓት ያመልክቱ bash.

የሼል ትዕዛዞች በመስመር ምግብ ይለያያሉ፣ አስተያየቶች በፓውንድ ምልክት ይለያያሉ። ምን እንደሚመስል እነሆ፡-

#!/bin/bash
# This is a comment
pwd
whoami

እዚህ ፣ ልክ በትእዛዝ መስመር ላይ ፣ በአንድ መስመር ላይ ትዕዛዞችን መጻፍ ፣ ከሴሚኮሎን ጋር መለየት ይችላሉ። ነገር ግን, በተለያዩ መስመሮች ላይ ትዕዛዞችን ከጻፉ, ፋይሉ ለማንበብ ቀላል ነው. ያም ሆነ ይህ, ዛጎሉ ያስኬዳቸዋል.

በስክሪፕት ፋይል ላይ ፈቃዶችን በማዘጋጀት ላይ

ፋይሉን ስም በመስጠት ያስቀምጡት። myscriptእና የባሽ ስክሪፕት ሊጠናቀቅ ተቃርቧል። አሁን ይህን ፋይል ተፈፃሚ ለማድረግ ብቻ ይቀራል ፣ አለበለዚያ እሱን ለማስኬድ ሲሞክሩ ስህተት ያጋጥምዎታል Permission denied.

Bash ስክሪፕቶች: መጀመር
የስክሪፕት ፋይል በትክክል ካልተዋቀሩ ፍቃዶች ጋር ለማሄድ በመሞከር ላይ

ፋይሉን ተፈፃሚ እናድርገው፡-

chmod +x ./myscript

አሁን እሱን ለማስፈጸም እንሞክር፡-

./myscript

ፈቃዶቹን ካቀናበሩ በኋላ, ሁሉም ነገር እንደ ሁኔታው ​​ይሰራል.

Bash ስክሪፕቶች: መጀመር
የ bash ስክሪፕት በተሳካ ሁኔታ አሂድ

የመልእክት ውፅዓት

ወደ ሊኑክስ ኮንሶል ጽሑፍ ለማተም ትዕዛዙን ይጠቀሙ echo. የዚህን እውነታ እውቀት እንጠቀም እና ስክሪፕታችንን እናርትዕ፣ ቀድሞውንም በውስጡ ያሉትን ትእዛዞች በሚያወጣው ውሂብ ላይ ማብራሪያዎችን እንጨምር።

#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami

የተሻሻለውን ስክሪፕት ካካሄዱ በኋላ ምን እንደሚፈጠር እነሆ።

Bash ስክሪፕቶች: መጀመር
ከስክሪፕት የሚመጡ መልዕክቶችን ማውጣት

አሁን ትዕዛዙን በመጠቀም የማብራሪያ መለያዎችን ማሳየት እንችላለን echo. የሊኑክስ መሳሪያዎችን በመጠቀም ፋይልን እንዴት እንደሚያስተካክሉ ካላወቁ ወይም ከዚህ በፊት ትዕዛዙን ካላዩ echo, ተመልከት ይሄ ይዘቱ

ተለዋዋጮችን በመጠቀም

ተለዋዋጮች መረጃን በስክሪፕት ፋይል ውስጥ እንዲያከማቹ ይፈቅድልዎታል፣ ለምሳሌ የትዕዛዝ ውጤቶች፣ በሌሎች ትዕዛዞች ለመጠቀም።

የሥራቸውን ውጤት ሳያስቀምጡ የግለሰብ ትዕዛዞችን መተግበሩ ምንም ስህተት የለውም, ነገር ግን የዚህ አቀራረብ ዕድሎች በጣም ውስን ናቸው.

በ bash ስክሪፕቶች ውስጥ ጥቅም ላይ ሊውሉ የሚችሉ ሁለት ዓይነት ተለዋዋጮች አሉ፡-

  • የአካባቢ ተለዋዋጮች
  • የተጠቃሚ ተለዋዋጮች

የአካባቢ ተለዋዋጮች

አንዳንድ ጊዜ የሼል ትዕዛዞች ከአንዳንድ የስርዓት ውሂብ ጋር መስራት ያስፈልጋቸዋል. ለምሳሌ፣ የአሁኑን ተጠቃሚ የቤት ማውጫ እንዴት ማሳየት እንደሚቻል እነሆ፡-

#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"

እባክዎን የስርዓት ተለዋዋጭውን መጠቀም እንደምንችል ያስተውሉ $HOME በድርብ ጥቅሶች, ይህ ስርዓቱን እንዳይገነዘብ አያግደውም. ከላይ ያለውን ስክሪፕት ብታሄዱ ምን እንደሚፈጠር እነሆ።

Bash ስክሪፕቶች: መጀመር
በስክሪፕት ውስጥ የአካባቢን ተለዋዋጭ መጠቀም

ግን የዶላር ምልክት ማሳየት ከፈለጉስ? ይህን እንሞክር፡-

echo "I have $1 in my pocket"

ስርዓቱ በአንድ ሕብረቁምፊ ውስጥ የዶላር ምልክት በጥቅሶች ተወስኗል እና እኛ ተለዋዋጮችን እንደጠቀስን ያስባል። ስክሪፕቱ ያልተገለጸ ተለዋዋጭ እሴት ለማሳየት ይሞክራል። $1. እኛ የምንፈልገው ይህ አይደለም. ምን ለማድረግ?

በእንደዚህ አይነት ሁኔታ ከዶላር ምልክት በፊት የኋሊት መቆጣጠሪያ ባህሪን መጠቀም ይረዳል:

echo "I have $1 in my pocket"

ስክሪፕቱ አሁን የሚጠበቀውን በትክክል ያወጣል።

Bash ስክሪፕቶች: መጀመር
የዶላር ምልክትን ለማውጣት የማምለጫ ቅደም ተከተል በመጠቀም

የተጠቃሚ ተለዋዋጮች

ከአካባቢ ተለዋዋጮች በተጨማሪ የባሽ ስክሪፕቶች የራስዎን ተለዋዋጮች በስክሪፕቱ ውስጥ እንዲያዘጋጁ እና እንዲጠቀሙ ይፈቅድልዎታል። እንደነዚህ ያሉት ተለዋዋጮች ስክሪፕቱ እስኪያልቅ ድረስ ዋጋ ይይዛሉ።

እንደ የስርዓት ተለዋዋጮች፣ የተጠቃሚ ተለዋዋጮች የዶላር ምልክትን በመጠቀም ማግኘት ይቻላል፡-
TNW-CUS-FMP - በአገልግሎታችን ላይ ለ10% ቅናሽ የማስተዋወቂያ ኮድ፣ በ7 ቀናት ውስጥ ለማግበር ይገኛል።

#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"

እንደዚህ አይነት ስክሪፕት ከሄዱ በኋላ ምን እንደሚከሰት እነሆ.

Bash ስክሪፕቶች: መጀመር
ብጁ ተለዋዋጮች በስክሪፕት ውስጥ

የትእዛዝ ምትክ

በጣም ጠቃሚ ከሆኑት የ bash ስክሪፕቶች ባህሪያት አንዱ መረጃን ከትእዛዞች ውፅዓት ማውጣት እና ለተለዋዋጮች መመደብ መቻል ነው ፣ ይህ መረጃ በስክሪፕት ፋይሉ ውስጥ በማንኛውም ቦታ እንዲጠቀሙ ያስችልዎታል።

ይህ በሁለት መንገዶች ሊከናወን ይችላል.

  • ከኋላ ምልክት "`" ጋር
  • በግንባታ እርዳታ $()

የመጀመሪያውን አቀራረብ ሲጠቀሙ, ከኋላ ምልክት ይልቅ አንድ ጥቅስ ላለመጠቀም ይጠንቀቁ. ትዕዛዙ በሁለት አዶዎች መያያዝ አለበት፡-

mydir=`pwd`

በሁለተኛው አቀራረብ, ተመሳሳይ ነገር እንደሚከተለው ተጽፏል.

mydir=$(pwd)

እና ስክሪፕቱ ፣ በመጨረሻ ፣ እንደዚህ ሊመስል ይችላል-

#!/bin/bash
mydir=$(pwd)
echo $mydir

በሚሠራበት ጊዜ የትዕዛዙ ውጤት pwdበተለዋዋጭ ውስጥ ይከማቻል mydir, ይዘቱ, ትዕዛዙን በመጠቀም echo, ወደ ኮንሶል ይሄዳል.

Bash ስክሪፕቶች: መጀመር
በተለዋዋጭ ውስጥ የትዕዛዙን ውጤት የሚያስቀምጥ ስክሪፕት

የሂሳብ ስራዎች

በስክሪፕት ፋይል ውስጥ የሂሳብ ስራዎችን ለማከናወን, የቅጹን ግንባታ መጠቀም ይችላሉ $((a+b)):

#!/bin/bash
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2

Bash ስክሪፕቶች: መጀመር
የሂሳብ ስራዎች በስክሪፕት ውስጥ

ከሆነ - ከዚያ የቁጥጥር መዋቅር

በአንዳንድ ሁኔታዎች የትዕዛዝ አፈፃፀምን ፍሰት መቆጣጠር ያስፈልጋል። ለምሳሌ, የተወሰነ እሴት ከአምስት በላይ ከሆነ, አንድ እርምጃ መከናወን አለበት, አለበለዚያ ሌላ. ይህ በብዙ ሁኔታዎች ውስጥ ተግባራዊ ይሆናል, እና እዚህ የቁጥጥር መዋቅር ይረዳናል if-then. በቀላል አሠራሩ፣ የሚከተለውን ይመስላል።

if кОПанда
then
команды
fi

እና አንድ ምሳሌ እዚህ አለ-

#!/bin/bash
if pwd
then
echo "It works"
fi

በዚህ ሁኔታ, የትዕዛዙ አፈፃፀም ከሆነ pwdበተሳካ ሁኔታ ይጠናቀቃል, "ይሰራል" የሚለው ጽሑፍ በኮንሶል ውስጥ ይታያል.

ያለንን እውቀት እንጠቀም እና የበለጠ ውስብስብ ሁኔታን እንፃፍ። ተጠቃሚ መፈለግ አለብን እንበል /etc/passwd, እና ከተገኘ, መኖሩን ሪፖርት ያድርጉ.

#!/bin/bash
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi

ይህን ስክሪፕት ከሮጠ በኋላ የሚሆነው ይህ ነው።

Bash ስክሪፕቶች: መጀመር
የተጠቃሚ ፍለጋ

እዚህ ትዕዛዙን ተጠቅመንበታል። grepበፋይል ውስጥ ተጠቃሚን ለመፈለግ /etc/passwd. ቡድኑ ከሆነ grepለእርስዎ የማይታወቅ, መግለጫው ሊገኝ ይችላል እዚህ.

በዚህ ምሳሌ, ተጠቃሚው ከተገኘ, ስክሪፕቱ ተገቢውን መልእክት ያሳያል. ተጠቃሚው ማግኘት ካልቻለስ? በዚህ አጋጣሚ ስክሪፕቱ ምንም ሳይነግረን በቀላሉ አፈፃፀሙን ያጠናቅቃል። ስለዚህ ጉዳይም እንዲነግረን እወዳለሁ እና ኮዱን እናሻሽለው።

የዚያን ጊዜ የቁጥጥር ግንባታ

ፕሮግራሙ ሁለቱንም የተሳካ ፍለጋ እና ያልተሳካ ውጤት ሪፖርት ማድረግ እንዲችል, ግንባታውን እንጠቀማለን if-then-else. እንዴት እንደሚዋቀር እነሆ፡-

if кОПанда
then
команды
else
команды
fi

የመጀመሪያው ትዕዛዝ ዜሮን ከመለሰ, ይህ ማለት በተሳካ ሁኔታ ተፈጽሟል, ሁኔታው ​​እውነት ይሆናል እና አፈፃፀሙ ከቅርንጫፉ ጋር አይሄድም. else. ያለበለዚያ ፣ ከዜሮ ውጭ የሆነ ነገር ከተመለሰ ፣ ይህ ማለት ውድቀት ፣ ወይም የውሸት ውጤት ፣ ከዚያ በኋላ ያዛል else.

የሚከተለውን ስክሪፕት እንጻፍ፡-

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
else
echo "The user $user doesn’t exist"
fi

የእሱ መገደል መስመር ላይ ወረደ else.

Bash ስክሪፕቶች: መጀመር
ስክሪፕት ካለ-ከሆነ-ግንባታ ማሄድ

ደህና፣ ወደ ፊት እንሂድ እና ስለ ይበልጥ አስቸጋሪ ሁኔታዎች እራሳችንን እንጠይቅ። አንድ ሁኔታን ሳይሆን ብዙዎችን መመርመር ቢፈልጉስ? ለምሳሌ, አስፈላጊው ተጠቃሚ ከተገኘ, አንድ መልዕክት መታየት አለበት, ሌላ ሁኔታ ከተሟላ, ሌላ መልእክት መታየት አለበት, ወዘተ. በእንደዚህ ዓይነት ሁኔታ ውስጥ, የጎጆዎች ሁኔታዎች ይረዱናል. ይህን ይመስላል።

if кОПанда1
then
команды
elif кОПанда2
then
команды
fi

የመጀመርያው ትእዛዝ ዜሮን ከመለሰ ፣ይህም የተሳካ አፈፃፀሙን ያሳያል ፣በመጀመሪያው ብሎክ ውስጥ ያሉት ትዕዛዞች ይከናወናሉ። then, አለበለዚያ, የመጀመሪያው ሁኔታ ሐሰት ከሆነ, እና ሁለተኛው ትዕዛዝ ዜሮን ከመለሰ, ሁለተኛው የብሎግ ኮድ ይከናወናል.

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
elif ls /home
then
echo "The user doesn’t exist but anyway there is a directory under /home"
fi

በእንደዚህ ዓይነት ስክሪፕት ውስጥ, ለምሳሌ, ትዕዛዙን በመጠቀም አዲስ ተጠቃሚ መፍጠር ይችላሉ useradd, ፍለጋው ምንም ውጤት ካልተመለሰ, ወይም ሌላ ጠቃሚ ነገር ካደረጉ.

የቁጥር ንጽጽር

በስክሪፕቶች ውስጥ የቁጥር እሴቶችን ማወዳደር ይችላሉ። ከዚህ በታች ተዛማጅ የሆኑ ትዕዛዞች ዝርዝር ነው.

n1 -eq n2ከሆነ እውነት ይመለሳል n1 እኩል n2.
n1 -ge n2 ከሆነ እውነት ይመለሳል n1ብዙ ወይም እኩል n2.
n1 -gt n2ከሆነ እውነት ይመለሳል n1 ከ n2.
n1 -le n2ከሆነ እውነት ይመለሳል n1ያነሰ ወይም እኩል n2.
n1 -lt n2n1 ያነሰ ከሆነ እውነትን ይመልሳል n2.
n1 -ne n2ከሆነ እውነት ይመለሳል n1እኩል አይደለም n2.

እንደ ምሳሌ፣ ከንፅፅር ኦፕሬተሮች አንዱን እንሞክር። አገላለጹ በካሬ ቅንፎች ውስጥ መያዙን ልብ ይበሉ።

#!/bin/bash
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi

ይህ ትእዛዝ የሚወጣው እዚህ ነው።

Bash ስክሪፕቶች: መጀመር
በስክሪፕቶች ውስጥ ቁጥሮችን ማወዳደር

ተለዋዋጭ እሴት val1ከ 5 በላይ, በመጨረሻም ቅርንጫፉ ይፈጸማል thenየንፅፅር ኦፕሬተር እና ተጓዳኝ መልእክት በኮንሶል ውስጥ ይታያል.

የሕብረቁምፊ ንጽጽር

ስክሪፕቶች የሕብረቁምፊ እሴቶችን ማወዳደር ይችላሉ። የንፅፅር ኦፕሬተሮች በጣም ቀላል ይመስላሉ ፣ ግን የሕብረቁምፊ ንፅፅር ኦፕሬተሮች የተወሰኑ ባህሪዎች አሏቸው ፣ ከዚህ በታች እንነካቸዋለን ። የኦፕሬተሮች ዝርዝር ይኸውና.

str1 = str2 ሕብረቁምፊዎችን ለእኩልነት ይፈትናል፣ ሕብረቁምፊዎች ተመሳሳይ ከሆኑ እውነትን ይመልሳል።
str1 != str2ገመዶቹ ተመሳሳይ ካልሆኑ እውነትን ይመልሳል።
str1 < str2ከሆነ እውነት ይመለሳል str1ያነሰ str2.
str1 > str2 ከሆነ እውነት ይመለሳል str1ተለክ str2.
-n str1 ርዝመት ከሆነ እውነትን ይመልሳል str1ከዜሮ በላይ።
-z str1ርዝመት ከሆነ እውነትን ይመልሳል str1ከዜሮ ጋር እኩል ነው።

በስክሪፕት ውስጥ የሕብረቁምፊ ንጽጽር ምሳሌ ይኸውና፡

#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user  is the current logged in user"
fi

በስክሪፕቱ አፈፃፀም ምክንያት, የሚከተለውን እናገኛለን.

Bash ስክሪፕቶች: መጀመር
የሕብረቁምፊ ንጽጽር በስክሪፕቶች

ሊጠቀስ የሚገባው የሕብረቁምፊ ንጽጽር አንድ ባህሪ እዚህ አለ። ማለትም የ ">" እና "<" ኦፕሬተሮች ከኋላ በመመለስ ማምለጥ አለባቸው፣ አለበለዚያ ስክሪፕቱ በትክክል አይሰራም፣ ምንም እንኳን የስህተት መልዕክቶች ባይታዩም። ስክሪፕቱ የ ">" ምልክቱን ውፅዓት አቅጣጫውን ለማዞር እንደ ትዕዛዝ ይተረጉመዋል።

ከእነዚህ ኦፕሬተሮች ጋር አብሮ መስራት በኮድ ውስጥ እንዴት እንደሚመስል እነሆ።

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

የስክሪፕቱ ውጤቶች እነኚሁና።

Bash ስክሪፕቶች: መጀመር
የሕብረቁምፊ ንጽጽር፣ ማስጠንቀቂያ ተጥሏል።

ስክሪፕቱ ምንም እንኳን እየሰራ ቢሆንም ማስጠንቀቂያ እንደሚሰጥ ልብ ይበሉ፡-

./myscript: line 5: [: too many arguments

ይህንን ማስጠንቀቂያ ለማስወገድ, እንጨርሰዋለን $val2 በድርብ ጥቅሶች፡-

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > "$val2" ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

አሁን ሁሉም ነገር እንደ ሁኔታው ​​ይሰራል.

Bash ስክሪፕቶች: መጀመር
የሕብረቁምፊ ንጽጽር

ሌላው የ ">" እና "<" ኦፕሬተሮች ባህሪ ከትላልቅ እና ትንንሽ ሆሄያት ጋር እንዴት እንደሚሰሩ ነው። ይህንን ባህሪ ለመረዳት፣ የሚከተለውን ይዘት ያለው የጽሑፍ ፋይል እናዘጋጅ።

Likegeeks
likegeeks

በስም ያስቀምጡት። myfileእና ከዚያ የሚከተለውን ትዕዛዝ በተርሚናል ውስጥ ያሂዱ:

sort myfile

መስመሮቹን ከፋይሉ ላይ እንደሚከተለው ይመድባል፡-

likegeeks
Likegeeks

ቡድን sort, በነባሪ, ሕብረቁምፊዎችን ወደ ላይ በቅደም ተከተል ያስቀምጣል, ይህም ማለት በእኛ ምሳሌ ውስጥ ያለው ትንሽ ፊደል ከትልቅ ሆሄያት ያነሰ ነው. አሁን ተመሳሳዩን ሕብረቁምፊዎች የሚያነጻጽር ስክሪፕት እናዘጋጅ፡-

#!/bin/bash
val1=Likegeeks
val2=likegeeks
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

እሱን ካስኬዱ ፣ ተቃራኒው እውነት ነው - ንዑስ ሆሄ አሁን ከትላልቅ ፊደላት ይበልጣል።

Bash ስክሪፕቶች: መጀመር
በስክሪፕት ፋይል ውስጥ የትዕዛዝ እና የሕብረቁምፊ ንፅፅርን ደርድር

በንፅፅር ትዕዛዞች፣ አቢይ ሆሄያት ከትንሽ ሆሄያት ያነሱ ናቸው። የሕብረቁምፊ ንጽጽር እዚህ የሚደረገው የ ASCII ቁምፊ ኮዶችን በማነፃፀር ነው፣የድርድሩ ቅደም ተከተል በቁምፊ ኮዶች ላይ የተመሰረተ ነው።

ቡድን sort, በተራው, በስርዓት ቋንቋ መቼቶች ውስጥ የተገለጸውን ቅደም ተከተል ይጠቀማል.

የፋይል ፍተሻዎች

ምናልባት ከታች ያሉት ትእዛዞች በብዛት በ bash ስክሪፕቶች ውስጥ ጥቅም ላይ ይውላሉ። ፋይሎችን በተመለከተ የተለያዩ ሁኔታዎችን እንዲፈትሹ ያስችሉዎታል። የእነዚህ ትዕዛዞች ዝርዝር ይኸውና.

-d fileፋይሉ ካለ እና ማውጫ መሆኑን ያረጋግጣል።
-e fileፋይል መኖሩን ያረጋግጣል።
-f file ፋይል ካለ እና ፋይል መሆኑን ያረጋግጣል።
-r fileፋይሉ ካለ እና ሊነበብ የሚችል መሆኑን ያረጋግጣል።
-s file Пፋይሉ ካለ እና ባዶ አለመሆኑን ያረጋግጣል።
-w fileፋይሉ ካለ እና ሊፃፍ የሚችል መሆኑን ያረጋግጣል።
-x fileፋይል ካለ እና ተፈጻሚ መሆኑን ያረጋግጣል።
file1 -nt file2 አዲስ ከሆነ ያጣራል። file1ከ file2.
file1 -ot file2የቆየ ከሆነ ያጣራል። file1ከ file2.
-O file ፋይሉ ካለ እና በአሁን ተጠቃሚ የተያዘ መሆኑን ያረጋግጣል።
-G fileፋይሉ ካለ እና የቡድን መታወቂያው ከአሁኑ ተጠቃሚ ቡድን መታወቂያ ጋር የሚዛመድ ከሆነ ያጣራል።

እነዚህ ትእዛዛት እና ሌሎች ዛሬ የተብራሩት፣ ለማስታወስ ቀላል ናቸው። ስማቸው ለተለያዩ ቃላቶች ምህጻረ ቃል በመሆናቸው በቀጥታ የሚሰሩትን ቼኮች ያመለክታሉ።

ከትእዛዛቱ ውስጥ አንዱን በተግባር እንሞክር፡-

#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi

ይህ ስክሪፕት ላለው ማውጫ ይዘቱን ያሳያል።

Bash ስክሪፕቶች: መጀመር
የማውጫ ይዘቶችን መዘርዘር

በቀሪዎቹ ትዕዛዞች በራስዎ መሞከር እንደሚችሉ እናምናለን, ሁሉም በተመሳሳይ መርህ መሰረት ይተገበራሉ.

ውጤቶች

ዛሬ የባሽ ስክሪፕቶችን እንዴት መጻፍ እንደጀመርን ተነጋገርን እና አንዳንድ መሰረታዊ ነገሮችን ሸፍነናል። እንደውም የባሽ ፕሮግራሚንግ ርዕስ ትልቅ ነው። ይህ ጽሑፍ የ 11 ተከታታይ ቁሳቁሶች የመጀመሪያ ክፍል ትርጉም ነው. አሁኑኑ ለመቀጠል ከፈለጉ, የእነዚህ ቁሳቁሶች የመጀመሪያ ዝርዝር እዚህ አለ. ለመመቻቸት አሁን ትርጉሙን ያነበብከው እዚህ ጋር ተካቷል።

  1. የባሽ ስክሪፕት ደረጃ በደረጃ - እዚህ እየተነጋገርን ያለነው የ bash ስክሪፕቶችን እንዴት መፍጠር እንደሚቻል ነው ፣ የተለዋዋጮች አጠቃቀም ግምት ውስጥ ይገባል ፣ ሁኔታዊ ግንባታዎች ፣ ስሌቶች ፣ የቁጥሮች ንፅፅር ፣ ሕብረቁምፊዎች ፣ ስለ ፋይሎች መረጃ ማግኘት ተብራርቷል።
  2. ባሽ ስክሪፕት ክፍል 2, Bash the great - እዚህ ጋር አብሮ የመስራት ባህሪዎች እና loops ሲገለጡ።
  3. ባሽ ስክሪፕት ክፍል 3፣ መለኪያዎች እና አማራጮች - ይህ ቁሳቁስ ተጠቃሚው በሚያስገቡት እና ከፋይሎች ሊነበብ በሚችል ውሂብ በመስራት ወደ ስክሪፕቶች ሊተላለፉ ለሚችሉ የትእዛዝ መስመር መለኪያዎች እና ቁልፎች ያተኮረ ነው።
  4. ባሽ ስክሪፕት ክፍል 4፣ ግቤት እና ውፅዓት - እዚህ ስለ ፋይል ገላጭዎች እና ከነሱ ጋር እየሰራን ነው, ስለ ግብዓት, ውፅዓት, ስህተቶች, የውጤት ማዘዋወር ዥረቶች.
  5. የባሽ ስክሪፕት ክፍል 5፣ ሲግልስ እና ስራዎች - ይህ ቁሳቁስ ለሊኑክስ ምልክቶች ፣ በስክሪፕት ሂደታቸው ፣ በታቀደለት ስክሪፕት ማስጀመር ላይ ያተኮረ ነው።
  6. Bash ስክሪፕት ክፍል 6, ተግባራት - እዚህ በስክሪፕቶች ውስጥ ተግባራትን ስለመፍጠር እና ስለመጠቀም ፣ ስለ ቤተ-መጽሐፍት ስለማሳደግ መማር ይችላሉ።
  7. ባሽ ስክሪፕት ክፍል 7፣ ሴድ በመጠቀም — ይህ መጣጥፍ ከሴድ ዥረት ጽሑፍ አርታዒ ጋር ስለመስራት ነው።
  8. Bash ስክሪፕት ክፍል 8, awk በመጠቀም - ይህ ቁሳቁስ በአውክ ዳታ ማቀነባበሪያ ቋንቋ ፕሮግራሚንግ ላይ ያተኮረ ነው።
  9. ባሽ ስክሪፕት ክፍል 9፣ መደበኛ መግለጫዎች - እዚህ በ bash ስክሪፕቶች ውስጥ ስለ መደበኛ አገላለጾች አጠቃቀም ማንበብ ይችላሉ።
  10. ባሽ ስክሪፕት ክፍል 10፣ ተግባራዊ ምሳሌዎች - ለተጠቃሚዎች ሊላኩ ከሚችሉ መልዕክቶች ጋር ለመስራት እና እንዲሁም ዲስኩን የመቆጣጠር ዘዴ እዚህ አሉ ።
  11. ባሽ ስክሪፕት ክፍል 11፣ ትእዛዝ ይጠብቁ - ይህ ቁሳቁስ ለተጠበቀው መሣሪያ የተወሰነ ነው ፣ ከእሱ ጋር በይነተገናኝ መገልገያዎችን በራስ-ሰር ማድረግ ይችላሉ። በተለይም ይህ ስለ የሚጠበቁ ስክሪፕቶች እና ከባሽ ስክሪፕቶች እና ሌሎች ፕሮግራሞች ጋር እንዴት እንደሚገናኙ ነው።

በዚህ ተከታታይ መጣጥፎች ውስጥ ካሉት ጥሩ ነገሮች አንዱ ከሁሉም መሰረታዊ ጀምሮ ይጀምራል ፣ ለማንኛውም ደረጃ ተጠቃሚዎች ተስማሚ ፣ ቀስ በቀስ ወደ ከባድ ርዕሰ ጉዳዮች ይመራል ፣ ይህም ሁሉም ሰው በሊኑክስ የትእዛዝ መስመር ስክሪፕት ውስጥ እንዲራመድ እድል ይሰጣል ።

ውድ አንባቢዎች! የባሽ ፕሮግራም አድራጊ ጎበዝ እንዴት ወደ ከፍተኛ የሊቃውንትነት ደረጃ እንደደረሱ እንዲናገሩ፣ ሚስጥሮችን እንዲያካፍሉ እንጠይቃለን እናም የመጀመሪያ ፅሁፋቸውን ገና ከፃፉት ሰዎች አስተያየት እየጠበቅን ነው።

Bash ስክሪፕቶች: መጀመር

በዳሰሳ ጥናቱ ውስጥ የተመዘገቡ ተጠቃሚዎች ብቻ መሳተፍ ይችላሉ። ስግን እንእባክህን።

የቀሩትን ተከታታይ መጣጥፎች ይተርጉሙ?

  • አዎ!

  • አያስፈልግም

1030 ተጠቃሚዎች ድምጽ ሰጥተዋል። 106 ተጠቃሚዎች ድምፀ ተአቅቦ አድርገዋል።

ምንጭ: hab.com

አስተያየት ያክሉ