5 примера Басх скрипти који ће вам помоћи да научите Линук програмирање

Басх скриптовање је један од најпопуларнијих, приступачних начина програмирања вашег Линук рачунара. Ови једноставни примери скрипти ће вам помоћи да разумете процес и упознати вас са основама Басх програмирања.

1. Како одштампати Хелло Ворлд у Басху

Пример Хелло Ворлд је одличан начин за учење о било ком програмском језику, а Басх није изузетак.

Ево како да одштампате „Хелло Ворлд“ користећи Басх:

  • Отворите уређивач текста и почните да уређујете нову датотеку која садржи следеће линије кода.
  • Први ред ваших Басх скрипти увек треба да изгледа овако:
     #!/bin/bash 

    Команда Схебанг (#!/бин/басх) је неопходна јер је љуска користи да одлучи како да покрене скрипту. У овом случају, користи се Басх интерпретер.

  • Сваки ред који почиње симболом # је коментар. Схебанг линија је посебан случај, али можете користити сопствене коментаре да објасните свој код. Додајте коментар у ред 2, нпр.:
      
  • Можете да штампате на стандардни излаз користећи команду ецхо, праћену вредношћу коју желите да одштампате. Додајте следеће на линији 3:
     echo "Hello World" 
  • Сачувајте скрипту, по могућности са екстензијом .сх, нпр. хелло_ворлд.сх. Проширење није услов, али је конвенција које је корисно придржавати се.
  • Да бисте покренули скрипту, учините датотеку извршном. Користите команду цхмод („промени режим“) заједно са аргументом +к („извршни“) и именом ваше схелл скрипте:
     chmod +x hello_world.sh 
  • Користите ову команду да покренете скрипту из њеног директоријума:
     ./hello_world.sh 
  • Када се скрипта покрене, одштампаће текст „Хелло Ворлд“ на ваш терминал:
  •   Како креирати псеудониме и функције љуске на Линук-у

    2. Креирајте директоријум читањем уноса

    Из ваших скрипти можете покренути било који програм који бисте иначе могли покренути на командној линији. На пример, можете креирати нови директоријум из ваше скрипте помоћу команде мкдир.

  • Почните са истом схебанг линијом као и раније:
     #!/bin/bash 
  • Затражите од корисника име директоријума, користећи команду ецхо као и раније:
     echo "Enter new directory name:" 
  • Користите уграђену команду за читање да бисте преузели кориснички унос. Један аргумент именује променљиву у коју ће шкољка похранити улаз:
     read newdir 
  • Када треба да користите вредност сачувану у променљивој, ставите префикс њеног имена симболом долара ($). Можете проследити садржај улазне променљиве као аргумент команди мкдир, да бисте креирали нови директоријум:
     mkdir $newdir 
  • Када покренете ову скрипту, она ће од вас затражити унос. Унесите важеће име директоријума и видећете да га скрипта креира у вашем тренутном директоријуму:
  • 3. Креирајте директоријум користећи аргументе командне линије

    Као алтернатива интерактивном читању уноса, већина Линук команди подржава аргументе. Можете дати аргумент када покренете програм, да контролишете његово понашање.

    Унутар ваше скрипте, можете да користите $1 за упућивање на специјалну променљиву која садржи вредност првог аргумента. $2 ће се односити на други аргумент, и тако даље.

  • Креирајте директоријум користећи команду мкдир из претходног примера. Међутим, овог пута користите уграђену променљиву $1:
     #!/bin/bash
    mkdir $1
  • Покрените скрипту, овог пута прослеђујући изабрано име новог директоријума као аргумент:
     ./arg_dir.sh Test 
  • Можда се питате шта се дешава ако покренете скрипту без навођења аргумента. Пробајте и видите; требало би да добијете поруку о грешци која почиње „усаге: мкдир“:

      Како да подесите контролну таблу Линук сервера са Линук Дасх-ом

    Без икаквих аргумената командне линије, вредност $1 ће бити празна. Када ваша скрипта позове мкдир, неће јој проследити аргумент, а команда мкдир ће вратити ту грешку. Да бисте то избегли, можете сами да проверите стање и прикажете пријатељскију грешку:

  • Као и увек, почните са схебанг линијом:
     #!/bin/bash 
  • Пре него што позовете мкдир, проверите да ли је први аргумент празан (тј. нема аргумената). Ово можете да урадите користећи Басх-ов иф исказ који покреће код на основу услова:
     if ["$1" = ""]; then 
  • Ако је први аргумент празан, одштампајте грешку и изађите из скрипте:
         echo "Please provide a new directory name as the first argument"
        exit
  • Помало чудна кључна реч „фи“ („иф“ обрнуто) сигнализира крај наредбе иф у Басху:
     fi 
  • Ваша скрипта сада може да настави као и раније, да обради случај када је присутан аргумент:
     mkdir $1 
  • Када покренете ову нову верзију скрипте, добићете поруку ако заборавите да укључите аргумент:

    4. Избришите датотеку користећи Басх функцију

    Ако нађете да понављате исти код, размислите о томе да га умотате у функцију. Затим можете позвати ту функцију кад год затреба.

    Ево примера функције која брише дату датотеку.

  • Почните са схебанг линијом:
     #!/bin/bash 
  • Дефинишите функцију тако што ћете написати њено име праћено празним заградама и командама унутар витичастих заграда:
     del_file() {
        echo "deleting $1"
        rm $1
    }

    Затим можете позвати функцију и проследити јој име датотеке за брисање:

     del_file test.txt 

  • Када позовете функцију, она ће поставити посебан $? вредност са статусом излаза последње команде коју је покренула. Статус излаза је користан за проверу грешака; у овом примеру, можете тестирати да ли је команда рм успела:

     if [ $? -ne 0 ]; then
        echo "Sorry, could not delete the file"
    fi

    5. Направите основни калкулатор за аритметичка израчунавања

    Овај последњи пример показује веома основни калкулатор. Када га покренете, унећете две вредности, а затим изабрати аритметичку операцију коју ћете извршити над њима.

      Како читати стрипове на Линук-у помоћу прегледа

    Ево кода за цалц.сх:

     #!/bin/bash


    echo "Enter first number: "
    read a

    echo "Enter second number: "
    read b


    echo "Enter Arithmetic Operation Choice :"
    echo "1. Addition"
    echo "2. Subtraction"
    echo "3. Multiplication"
    echo "4. Division"
    read choice


    case $choice in
      1)
     result=`echo $a + $b | bc`
      ;;

      2)
     result=`echo $a - $b | bc`
     ;;

      3)
     result=`echo $a \* $b | bc`
      ;;

      4)
     result=`echo "scale=2; $a / $b" | bc`
      ;;
    esac

    echo "Result: $result"

    Обратите пажњу на употребу падежа … есац који је Басх-ов еквивалент свитцх наредби из других језика. Омогућава вам да тестирате вредност—у овом случају променљиву избора—на неколико фиксних вредности и покренете повезани код.

    Ова скрипта користи команду бц да изврши сваки прорачун.