Сценарии оболочки — подстановка переменных

Опубликовано: 30 Сентября, 2022

Оболочка — это интерфейс, который помогает пользователям подключаться к системе. Использование оболочки эквивалентно косвенному общению с операционной системой. В распределенных системах Linux каждый раз, когда мы используем терминал, мы подключаемся к оболочке. Задача оболочки — анализировать команды или инструкции Unix, данные пользователем. Этот процесс включает в себя получение команд от пользователя и преобразование их в форму, которую ядро может легко понять. Проще говоря, он действует как посредник между пользователем и ядром операционной системы. Ядро является наиболее важной частью операционной системы компьютера.

Чтобы понять подстановку переменных, давайте сначала обсудим подстановку в сценариях оболочки. Подстановка — это функция, следуя которой мы можем указать оболочке заменить фактическое значение выражения.

Замена escape-последовательностей:

Есть некоторые последовательности символов, которые не отражают их истинную природу, но имеют особое значение для операционной системы, и эти последовательности известны как управляющие последовательности. Когда они используются в команде, они заменяются фактическими значениями.

Escape-последовательности Значение
добавить новую строку
т горизонтальная вкладка
\ обратная косая черта
б назад
р возврат каретки

Пример:

В этом скрипте мы использовали две команды эха для печати строк. Как видите, мы использовали управляющую последовательность для новой строки ( ) в конце строки. Поскольку фактическая работа этого символа заключается в добавлении новой строки, следовательно, добавляется новая строка (четко видна в выводе). Кроме того, во втором утверждении мы использовали три горизонтальных символа табуляции в начале. Поскольку фактическая работа этого символа заключается в добавлении горизонтального пробела табуляции, поэтому перед выводом строки на консоль добавляются три горизонтальных пробела (четко видимые в выводе).

#!/bin/sh

#statement 1
echo -e "GeeksforGeeks
"

# statement 2 
echo -e "		is the best"

Выход:

Замена переменной:

Оболочка позволяет нам манипулировать значением переменной на основе ее статуса инициализации. Под статусом инициализации мы подразумеваем, инициализируется ли переменная до того, как ее значение фактически используется для различных целей.

Сэр Нет. Выражение Значение
1 ${моя переменная} подставьте значение myVariable .
2 ${мояПеременная:-значение} Если myVariable не задано (или равно null), то вместо myVariable заменяется значение.
3 ${мояПеременная:=значение} Если myVariable не установлен (или имеет значение null), то ему присваивается значение.
4 ${мояПеременная:+значение} Если установлена myVariable , значение заменяется на myVariable .
5 ${моя переменная:? сообщение} Если myVariable не установлена (или равна нулю), то сообщение печатается как стандартная ошибка.

Работа этих выражений была подробно рассмотрена в приведенном ниже сценарии:

Пример:

#!/bin/sh


# If myVariable is unset or null then 
# assign 100 to it
echo ${myVariable:- 100}
echo "1. The value of myVariable is ${myVariable}"


# If myVariable is unset or null then 
# assign "GeeksforGeeks" to it
echo ${myVariable:="GeeksforGeeks"}
echo "2. Value of myVariable is ${myVariable}"

# unset myVariable
unset myVariable

# If myVariable is set then substitute
# the value
echo ${myVariable:+"GeeksforGeeks"}
echo "3. Value of myVariable is $myVariable"

myVariable="GeeksforGeeks"

# If myVariable is set then substitute the value
echo ${myVariable:+"Nainwal"}
echo "4. Value of myVariable is $myVariable"

# If myVaraible is not-set or null then print
# the message
echo ${myVariable:?"Message"}
echo "5. Value of myVariable is ${myVariable}"

# unset myVariable
unset myVariable

# If myVaraible is not-set or null then print
# the message
echo ${myVariable:?"Message"}
echo "6. Value of myVariable is ${myVariable}"

Выход: