Bash скриптовете са един от най-популярните и достъпни начини за програмиране на вашия Linux компютър. Тези прости примери за скриптове ще ви помогнат да разберете процеса и ще ви запознаят с основите на програмирането на Bash.
Съдържание
1. Как да отпечатате Hello World в Bash
Примерът Hello World е чудесен начин да научите за всеки език за програмиране и Bash не е изключение.
Ето как да отпечатате „Hello World“ с помощта на Bash:
#!/bin/bash
Командата Shebang (#!/bin/bash) е от съществено значение, тъй като обвивката я използва, за да реши как да стартира скрипта. В този случай той използва интерпретатора Bash.
echo "Hello World"
chmod +x hello_world.sh
./hello_world.sh
2. Създайте директория чрез четене на въведени данни
От вашите скриптове можете да стартирате всяка програма, която обикновено изпълнявате от командния ред. Например, можете да създадете нова директория от вашия скрипт, като използвате командата mkdir.
#!/bin/bash
echo "Enter new directory name:"
read newdir
mkdir $newdir
3. Създайте директория с помощта на аргументи от командния ред
Като алтернатива на интерактивното четене на въвеждане, повечето Linux команди поддържат аргументи. Можете да предоставите аргумент, когато стартирате програма, за да контролирате нейното поведение.
Във вашия скрипт можете да използвате $1 за препратка към специална променлива, която съдържа стойността на първия аргумент. $2 ще препраща към втория аргумент и т.н.
#!/bin/bash
mkdir $1
./arg_dir.sh Test
Може би се чудите какво ще се случи, ако стартирате скрипта, без изобщо да предоставите аргумент. Опитайте и вижте; трябва да получите съобщение за грешка, което започва „usage: mkdir“:
Без никакви аргументи на командния ред стойността на $1 ще бъде празна. Когато вашият скрипт извика mkdir, той няма да му подаде аргумент и командата mkdir ще върне тази грешка. За да избегнете това, можете сами да проверите за условието и да представите по-приятелска грешка:
#!/bin/bash
if ["$1" = ""]; then
echo "Please provide a new directory name as the first argument"
exit
fi
mkdir $1
Когато стартирате тази нова версия на скрипта, ще получите съобщение, ако забравите да включите аргумент:
4. Изтрийте файл с помощта на функция Bash
Ако откриете, че повтаряте един и същ код, помислете дали да не го опаковате във функция. След това можете да извикате тази функция, когато имате нужда.
Ето пример за функция, която изтрива даден файл.
#!/bin/bash
del_file() {
echo "deleting $1"
rm $1
}
След това можете да извикате функцията и да й предадете името на файл за изтриване:
del_file test.txt
Когато извикате функция, тя ще зададе специалния $? стойност с изходния статус на последната команда, която изпълнява. Изходният статус е полезен за проверка на грешки; в този пример можете да проверите дали командата rm е успешна:
if [ $? -ne 0 ]; then
echo "Sorry, could not delete the file"
fi
5. Създайте основен калкулатор за аритметични изчисления
Този последен пример демонстрира много елементарен калкулатор. Когато го стартирате, ще въведете две стойности, след което ще изберете аритметична операция, която да извършите върху тях.
Ето кода за calc.sh:
#!/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"
Обърнете внимание на използването на case … esac, което е еквивалентът на Bash на командата switch от други езици. Тя ви позволява да тествате стойност – в този случай променливата за избор – спрямо няколко фиксирани стойности и да изпълните свързания код.
Този скрипт използва командата bc за извършване на всяко изчисление.