Сценарии оболочки — замена

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

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

Эскейп-последовательности:

Управляющая последовательность — это группа символов, которая не представляет своего фактического значения, когда она используется в качестве строкового литерала. Некоторые из escape-последовательностей перечислены ниже:

Старший Нет. Escape-последовательности Значение (фактическое значение)
1 новая линия
2 f подача формы
3 р возврат каретки
4 б назад
5 т горизонтальная вкладка
6 v вертикальная вкладка
7 \ обратная косая черта

Shell заменяет управляющую последовательность ее фактическим значением.

Пример:

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

#!/bin/sh

// Print the string
echo -e "Hello World! 
"
  
// Print the string
echo -e "Hello GeeksforGeeks"

Выход:

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

Оболочка позволяет нам манипулировать значением переменной на основе ее статуса инициализации.

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

Пример:

Эти выражения демонстрируются в приведенном ниже сценарии оболочки.

#!/bin/sh


# If myVariable is unset or null 
# then assign 12 to it
echo ${myVariable:- 11}
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:+"Bhuwanesh"}
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

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

Выход:

Замена команды:

Подстановка команд — это механизм, которому следуют программисты в сценарии bash. В этом механизме вывод команды заменяет саму команду. Bash выполняет расширение, выполняя команду, а затем заменяя подстановку команды стандартным выводом команды. Проще говоря, вывод команды UNIX объединяется и затем используется как команда.

Чтобы лучше понять это, давайте рассмотрим пример. Команда seq в Linux используется для печати чисел от START до END с шагом INCREMENT.

Синтаксис:

seq START INCREMENT END  

Тип возврата:

Prints numbers from START to END each in the new line by the difference of INCREMENT.

Пример:

В приведенном ниже сценарии мы печатаем числа от 2 до 20 с разницей в 2. Другими словами, мы печатаем четные числа до 30.

#!/bin/bash

# your code goes here

seq 2 2 30

Выход:

Мы можем использовать вывод вышеуказанной команды в качестве новой команды. Рассмотрим приведенный ниже сценарий,

Пример:

#!/bin/bash
# your code goes here
 
echo $(seq 2 2 20)

Выход: