Основи на BASH. Част 1.

bash

прекъсване изход от за, докато или докато цикъл
продължете да изпълнявате следващата итерация на цикъл for, while или till
аргументи за ехо отпечатване, разделени с интервали, към стандартен изход
изход черупка изход
export маркира аргументи като променливи за преминаване към дъщерни процеси в околната среда
hash запомня напълно квалифицираните имена на команди, посочени като аргументи, така че да не ги търси при следващото повикване
kill изпраща сигнал за убиване към процеса
pwd показва текущата работна директория
read чете низ от входа на черупката и го използва, за да присвоява стойности на посочените променливи. \
return кара функцията на черупката да излезе с посочената стойност
shift премества позиционните параметри наляво
тест оценява условен израз
times показва потребителското име и системното време, използвани от черупката и нейните потомци
trap указва командите, които да се изпълняват, когато черупката получи сигнал
unset причинява разрушаване на променливите на черупката
изчакайте изчаква процеса на дете да излезе и отчита състоянието на изход.

И разбира се, освен вградени команди, ще използваме цял куп външни, отделни командни програми, с които ще се запознаем още в процеса.

Какво трябва да знаете от самото начало

1. Всеки bash скрипт трябва да започва с реда:

#!/bin/bash
на този ред след #! посочен е пътят до интерпретатора на bash, така че ако го инсталирате на друго място (където можете да разберете, като напишете whereis bash), променете го на вашия път.
2. Коментарите започват със знак # (с изключение на първия ред).
3. В bash променливите нямат тип (те ще бъдат разгледани по-долу)

Променливи и параметри на скрипта

Ще дам като пример малък пример, който ще анализираме:

#!/bin/bash

# посочете къде съхраняваме интерпретатора на bash
parametr1 = $ 1 # присвоява на променливата параметър1 стойността на първия параметър на скрипта
script_name = $ 0 # присвоява на променливата script_name стойността на името на скрипта
echo "Изпълнихте скрипт с името $ script_name и параметъра $ parametr1" # echo команда показва специфичен ред, променливите са достъпни чрез $ variable_name.
echo 'Стартирахте скрипт с името $ script_name и параметъра $ parametr1' # тук виждаме други кавички, разликата е, че няма заместване на променлива в единични кавички.
изход 0 # Изход с код 0 (успешно завършване на скрипта)

Резултатът от изпълнението на скрипта:

$ ./test.sh qwerty
Изпълнихте скрипт, наречен ./test.sh с параметър qwerty
Изпълнихте скрипт с име $ script_name и параметър $ parametr1

Сега, когато видяхме как да използваме променливи и да предаваме параметри на скрипта, е време да се запознаем със запазените променливи:


Мисля, че условните оператори са познати на почти всеки, който някога се е опитвал да пише програми върху нещо. В bash се проследяват условията. начин (както обикновено с пример):
#!/bin/bash
source = $ 1 # поставете първия параметър на скрипта в променливата source
dest = $ 2 # добавете втория параметър на скрипта към променливата dest

$ ./primer2.sh 1 1
Приложение 1 и източник 1 са един и същ файл!
ite @ ite-desktop:

Условия. Множествен избор


Ако трябва да сравните една променлива с голям брой параметри, тогава е по-целесъобразно да използвате изявлението case.
#!/bin/bash
echo "Изберете редактор, който да стартирате:"
echo "1 стартиране на nano програма"
echo "2 Run vi програма"
echo "3 стартиране на програма emacs"
ехо "4 изход"
read doing # тук четем в променливата $ doing от стандартен вход

дело $ правя в
един)
/ usr/bin/nano # ако $ doing съдържа 1, тогава стартирайте nano
;
2)
/ usr/bin/vi # ако $ doing съдържа 2, тогава стартирайте vi
;
3)
/ usr/bin/emacs # ако $ doing съдържа 3, тогава стартирайте emacs
;
4)
изход 0
;
*) # ако от клавиатурата е въведено нещо, което не е описано в случая, направете следното:
ехо „Въведено е невалидно действие“

esac # изявление в края на случая.

Резултат от работата:
ite @ ite-desktop:

UPD: Отстранени някои грешки
UPD: Актуализирана частта за условията, ако-тогава-друго