Оболочка выполняет подстановку, когда встречает выражение, содержащее один или несколько специальных символов.
пример
Здесь печатное значение переменной заменяется ее значением. В то же время, \ n заменяется новой строкой
#!/bin/sh a=10 echo -e "Value of a is $a \n"
Вы получите следующий результат. Здесь опция -e включает интерпретацию обратной косой черты.
Value of a is 10
Ниже приведен результат без опции -e —
Value of a is 10\n
Следующие escape-последовательности, которые можно использовать в команде echo —
Sr.No. | Побег и описание |
---|---|
1 |
\\ обратный слэш |
2 |
\ а оповещение (BEL) |
3 |
\ б возврат на одну позицию |
4 |
\ с подавить завершающий перевод строки |
5 |
\ е подача формы |
6 |
\ п новая линия |
7 |
\р возврат каретки |
8 |
\ т горизонтальная вкладка |
9 |
\ v вертикальная вкладка |
\\
обратный слэш
\ а
оповещение (BEL)
\ б
возврат на одну позицию
\ с
подавить завершающий перевод строки
\ е
подача формы
\ п
новая линия
\р
возврат каретки
\ т
горизонтальная вкладка
\ v
вертикальная вкладка
Вы можете использовать опцию -E, чтобы отключить интерпретацию обратной косой черты (по умолчанию).
Вы можете использовать опцию -n, чтобы отключить вставку новой строки.
Подстановка команд
Подстановка команд — это механизм, с помощью которого оболочка выполняет заданный набор команд, а затем заменяет их вывод вместо команд.
Синтаксис
Подстановка команды выполняется, когда команда задана как —
`command`
При выполнении подстановки команд убедитесь, что вы используете обратную кавычку, а не символ одинарной кавычки.
пример
Подстановка команд обычно используется для назначения вывода команды переменной. Каждый из следующих примеров демонстрирует подстановку команды —
#!/bin/sh DATE=`date` echo "Date is $DATE" USERS=`who | wc -l` echo "Logged in user are $USERS" UP=`date ; uptime` echo "Uptime is $UP"
После выполнения вы получите следующий результат —
Date is Thu Jul 2 03:59:57 MST 2009 Logged in user are 1 Uptime is Thu Jul 2 03:59:57 MST 2009 03:59:57 up 20 days, 14:03, 1 user, load avg: 0.13, 0.07, 0.15
Подстановка переменных
Подстановка переменных позволяет программисту оболочки манипулировать значением переменной в зависимости от ее состояния.
Вот следующая таблица для всех возможных замен —
Sr.No. | Форма и описание |
---|---|
1 |
$ {вар} Подставьте значение var . |
2 |
$ {вар: -слово} Если var нуль или не установлен, слово заменяется на var . Значение var не меняется. |
3 |
$ {Var: = слово} Если переменная равна нулю или не установлена, переменная устанавливается на значение слова . |
4 |
$ {вар: сообщение} Если переменная равна нулю или не установлена, сообщение выводится со стандартной ошибкой. Это проверяет, что переменные установлены правильно. |
5 |
$ {вар: + слово} Если переменная установлена, слово заменяется на переменную. Значение var не меняется. |
$ {вар}
Подставьте значение var .
$ {вар: -слово}
Если var нуль или не установлен, слово заменяется на var . Значение var не меняется.
$ {Var: = слово}
Если переменная равна нулю или не установлена, переменная устанавливается на значение слова .
$ {вар: сообщение}
Если переменная равна нулю или не установлена, сообщение выводится со стандартной ошибкой. Это проверяет, что переменные установлены правильно.
$ {вар: + слово}
Если переменная установлена, слово заменяется на переменную. Значение var не меняется.
пример
Ниже приведен пример, демонстрирующий различные состояния вышеуказанной замены:
#!/bin/sh echo ${var:-"Variable is not set"} echo "1 - Value of var is ${var}" echo ${var:="Variable is not set"} echo "2 - Value of var is ${var}" unset var echo ${var:+"This is default value"} echo "3 - Value of var is $var" var="Prefix" echo ${var:+"This is default value"} echo "4 - Value of var is $var" echo ${var😕"Print this message"} echo "5 - Value of var is ${var}"
После выполнения вы получите следующий результат —