Басх скриптовање је један од најпопуларнијих, приступачних начина програмирања вашег Линук рачунара. Ови једноставни примери скрипти ће вам помоћи да разумете процес и упознати вас са основама Басх програмирања.
Преглед садржаја
1. Како одштампати Хелло Ворлд у Басху
Пример Хелло Ворлд је одличан начин за учење о било ком програмском језику, а Басх није изузетак.
Ево како да одштампате „Хелло Ворлд“ користећи Басх:
#!/bin/bash
Команда Схебанг (#!/бин/басх) је неопходна јер је љуска користи да одлучи како да покрене скрипту. У овом случају, користи се Басх интерпретер.
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 ће се односити на други аргумент, и тако даље.
#!/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 aecho "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`
;;
esacecho "Result: $result"
Обратите пажњу на употребу падежа … есац који је Басх-ов еквивалент свитцх наредби из других језика. Омогућава вам да тестирате вредност—у овом случају променљиву избора—на неколико фиксних вредности и покренете повезани код.
Ова скрипта користи команду бц да изврши сваки прорачун.