В этом посте мы рассмотрим абсолютные основы собеседования по Bash Scripting for Cloud.

1.Что такое оболочка?

Оболочка — это слой вокруг операционной системы Unix/Linux. Работа оболочки заключается в преобразовании ввода пользователя из командной строки в инструкцию операционной системы.

Например, давайте рассмотрим эту командную строку:

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

Вот что оболочка делает с этой командой:

а) Разбивает строки на части, называемые словами. В этом примере cat, имя_файла1, имя_файла2, имя_файла3, ›, объединенный_файл.

б) Определяет назначение каждого слова: cat — это команда, filename1, filename2, filename3 — аргументы, а › вместе с merged_file — инструкция ввода-вывода.

c) Настраивает ввод-вывод в соответствии с merged_file и некоторыми стандартными неявными инструкциями.

г) Находит команду cat в файле и запускает ее с аргументами имя_файла1, имя_файла2, имя_файла3.

Есть несколько подэтапов, связанных с выполнением вышеуказанных шагов. Это просто высокоуровневый взгляд на оболочку.

2. Что такое Баш?

Bash — широко используемая оболочка во многих дистрибутивах Linux. Bash — интерпретатор команд. Это только интерфейс командной строки. Мы можем использовать bash для взаимодействия с системой.

3. Почему скрипт начинается с #!?

Первая строка скрипта содержит последовательность символов, известную как «шебанг».

Чтобы использовать интерпретатор bash, добавьте следующую строку в первую строку файла:

#!/bin/bash

#! который указывает загрузчику программы загрузить интерпретатор кода в файле.

/bin/bash — это местонахождение интерпретатора bash. [Если вы не используете bash в качестве оболочки входа]

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

В сценарии bash используются два типа переменных:

Системная переменная и пользовательская переменная.

Системные переменные — это переменные, которые предварительно определены и поддерживаются операционной системой Linux. Эти переменные используются заглавными буквами. Следующие команды используются для печати списка системных переменных: «set», «env» и «printenv».

Некоторые системные переменные:

$BASH_VERSION: содержит версию этого экземпляра bash.

$PATH : путь поиска команд. Это разделенный двоеточиями список каталогов, в которых оболочка ищет команды.

$CDPATH: путь поиска для команды cd.

$HOME : домашний каталог текущего пользователя.

…….

Пользовательская переменная — это переменные, которые определены и поддерживаются пользователем. Его можно определить как в верхнем, так и в нижнем регистре, но лучше избегать использования заглавных букв, чтобы отличать переменные от системных.

5. Как объявить переменную в bash?

Переменная в bash может быть объявлена ​​с типами данных или без них. Команда Declare может использоваться для объявления переменных с типами данных. Если переменная объявлена ​​без типов данных, она будет рассматриваться как строка.

Опции i,-r,-a,-A,-I,-u,-t и -x можно использовать с командой declare для объявления переменных с разными типами данных.

В приведенном выше примере, когда число объявлено без команды «Объявить», вывод результата будет 10+10. Поскольку num здесь считается строкой.

Позже в коде num объявляется с -i, вывод результата повторяется 20.

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

Значения аргументов командной строки предоставляются в терминале при выполнении скрипта bash. Аргументы командной строки читаются по $1, $2, $3…. $n переменных.

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

$1 читает первый аргумент. $2 читает второй аргумент и так далее. Предположим, у нас есть bash-скрипт learninglinux.sh, и мы выполняем его, как показано ниже, с аргументами «добро пожаловать в bash», затем welcome = $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, объявленные без типа данных, считаются строковыми. Существуют варианты объявления переменной с типами данных, но есть некоторые ограничения, например, тип данных с плавающей запятой не может быть объявлен с помощью команды declare. Из-за этого типа ограничений bash считается языком с еженедельной типизацией.

8. Как получить ввод с терминала в bash?

Команда чтения используется в сценарии bash для ввода данных с терминала.

Приведенный выше скрипт выдаст следующий вывод:

enter your name
Maya
Maya

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

Условный оператор if else в bash немного отличается от других языков программирования.

Если блок должен быть закрыт с помощью fi.

Синтаксис:

A.

if [условие];
then
утверждения
fi

B.

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

C.

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

Результат:

25 not greater than 100

10. Что является альтернативой оператору if else?

Оператор case можно использовать как альтернативу оператору if else. блок case закрывается esac. Оператор Break не используется внутри блока case для выхода из блока.

Выход: