В тази публикация ще разгледаме абсолютните основи на Bash Scripting за интервю за работа в облак.

1.Какво е Shell?

Обвивката е слой около операционната система Unix/Linux. Задачата на обвивката е да преведе въведеното от потребителя в командния ред в инструкция на операционната система.

Например, нека разгледаме този команден ред:

$ cat "filename1" "filename2" "filename3" > "merged_file"

Ето какво прави shell с тази команда:

а) Разделя редовете на части, наречени думи. В този пример cat, filename1, filename2, filename3, ›, merged_file.

b) Определя целта на всяка дума: cat е команда, filename1, filename2, filename3 са аргументи и › заедно с merged_file са I/O инструкция.

c) Настройва I/O според merged_file и някои стандартни, неявни инструкции.

d) Намира командата cat във файл и я изпълнява с аргументи filename1, filename2, filename3.

Има няколко подстъпки, включени в изпълнението на горните стъпки. Това е просто изглед от високо ниво на черупката.

2. Какво е Bash?

Bash е често използвана обвивка в много Linux дистрибуции. Bash е команден интерпретатор. Това е интерфейс само за команден ред. Можем да използваме bash за взаимодействие със системата.

3. Защо скриптът започва с #!?

Първият ред на скрипта съдържа последователност от знаци, известна като „shebang“.

За да използвате bash интерпретатор, добавете следния ред към първия ред на файла:

#!/bin/bash

#! който насочва програмата за зареждане на програмата да зареди интерпретатор за кода във файла.

/bin/bash е местоположението на интерпретатора на bash. [Ако не използвате bash като обвивка за вход]

4. Какви са типовете променливи в bash?

Има два типа променливи, използвани в bash скрипта:

Системна променлива и дефинирана от потребителя променлива.

Системните променливи са променливите, които са предварително дефинирани и поддържани от операционната система Linux. Тези променливи се използват с главни букви. Следните команди се използват за отпечатване на списъка със системни променливи: ‘set’, ‘env’ и ‘printenv’.

Някои от системните променливи са:

$BASH_VERSION : Съдържа версията на този екземпляр на bash

$PATH : Пътят за търсене на команди. Това е разделен с двоеточие списък с директории, в които shell търси команди.

$CDPATH: пътя за търсене на командата cd.

$HOME : Началната директория на текущия потребител.

…….

Дефинираните от потребителя променливи са променливите, които се дефинират и поддържат от потребителя. Може да се дефинира както с главни, така и с малки букви, но е по-добре да избягвате главната буква, за да разграничите променливите от системните променливи.

5. Как да декларирам променлива в bash?

Променливата в bash може да бъде декларирана със или без типове данни. Командата Declare може да се използва за деклариране на променлива с типове данни. Ако променливата е декларирана без типове данни, тогава тя ще се третира като низ.

Опциите i,-r,-a,-A,-I,-u,-t и -x могат да се използват с командата declare за деклариране на променливи с различни типове данни.

В горния пример, когато num е декларирано без командата „Деклариране“, тогава резултатът е 10+10. Тъй като num се счита за низ тук.

По-късно в кода num се декларира с -i, изходът на резултата е ехо 20.

6. Как да използвате аргументи от командния ред в bash?

Стойностите на аргументите на командния ред се предоставят в терминала при изпълнение на bash скрипта. Аргументите на командния ред се четат от $1, $2, $3 .... $n променливи.

Позиционни параметри:

$1 чете първия аргумент. $2 чете втория аргумент и така нататък. Да предположим, че имаме bash скрипт learnlinux.sh и изпълняваме скрипта както по-долу с аргументите „добре дошли в bash“, след това добре дошли =$1, to=$2 и bash=$3.

bash learnlinux.sh welcome to bash
                   $1    $2  $3

$# -броят на аргументите, предоставени на скрипта.

Използване на знамена

Аргументите на командния ред могат също да бъдат предавани с помощта на флагове. Аргументите се предават в двойка -ключ стойност.

Пример: bash learnlinux.sh -1 това -2 е -3 bash -4 скрипт

Трябва да използваме функцията getopts, за да прочетем флаговете във входа, а съответната стойност се съхранява в OPTARG.

Пример: В примера по-долу getopts се използва за четене на аргументите на командния ред във формата на флаг и ако флагът е g, стойността, т.е. здравей, се съхранява в поздрави. И ако флагът е n, тогава стойността се съхранява в името.

7. Защо Bash се счита за седмичен език?

Bash се счита за седмичен език, тъй като променливата може да бъде декларирана без тип данни. Всички bash променливи, които са декларирани без тип данни, се считат за низ. Има опции за деклариране на променлива с типове данни, но има някои ограничения, като например типът данни float не може да бъде деклариран с помощта на командата declare. Поради този тип ограничения bash се счита за език, който се въвежда седмично.

8. Как да приемам вход от терминала в bash?

Командата за четене се използва в bash скрипт за приемане на входни данни от терминала.

Горният скрипт ще произведе следния резултат:

enter your name
Maya
Maya

9. Как могат да се използват условни изрази в bash?

Ако иначе условният оператор в bash е малко по-различен от други езици за програмиране.

Ако блокът трябва да се затвори с fi.

Синтаксис:

A.

if [ условие ];
then
изрази
fi

B.

ако [ условие ]; then
оператори 1
else
оператор 2
fi

C.

ако [ условие ]; then
оператор 1
elif [ условие ]; then
оператор 2
….
else
оператор n
fi

Резултатът е:

25 not greater than 100

10. Какво е алтернативата на оператора if else?

Казусът може да се използва като алтернатива на if else. блокът „case“ се затваря от „esac“. Инструкцията за прекъсване не се използва вътре в блок case за прекратяване от блока.

Резултатът: