скачать книгу бесплатно
${переменная ##шаблон} То же что и
ранее ,короткий и длинный фрагмент справа.
${переменная %шаблон}
${переменная %%шаблон}
$ echo ${c%.txt}
file1
max@hp:~$ echo ${c%%txt}
file1.
${переменная /шаблон/замена}
$ data=`date`
$ echo ${data}
Чт июн 13 10:56:05 MSK 2019
$ echo ${data/Чт}
июн 13 10:56:05 MSK 2019
${переменная //шаблон/замена}
$ echo ${data//Чт июн/Пт июль}
Пт июль 13 10:56:05 MSK 2019
${переменная /#шаблон/замена}
${переменная /%шаблон/замена}
Использовать max@hp:~$ greeting="hello friend"
$ declare -n message=greeting
$ echo message
message
$ echo $message
hello friend
$ message="by now"
$ echo $greeting
by now
$ {переменная@P} Вычислить значение указанной переменной.
$ echo ${c@P}
file1.txt
$
$ {переменная@Q} Заключить в кавычки значение указанной переменной.
$ c=file1.txt
$ echo ${c@Q}
'file1.txt'
${!переменная }
Использовать значение указанной переменной в качестве имени другой переменной ,значение которой должно быть использовано.
4.3 Косвенные переменные.
Косвенные переменные-это переменные именующие другие переменные.
Косвенные переменные создаются по команде
declare -n
Пример 1
$ greeting=privet
$ echo $greeting
privet
$ declare -n message=greeting
$ echo $message
privet
Пример 2 Присвоить через косвенную переменную
значение основной переменной.
$ message=otvet
$ echo $greeting
otvet
Пример 3 Применение псевдонима
$ text=ok
$ echo $(!text)
echo $(text=ok)
4.4 Переменные, встроенные в оболочку.
Основные переменные.
$# количество аргументов в командной строке.
$-Действующие в настоящее время
параметры,представленные в командной строке.
$? Выходное значение последней,выполнявшейся
команды.
$$ Номер процесса ,присвоенный оболочке.
$! Номер процесса,присвоенной
команде,выполнявшейся в фоновом режиме.
$0 Первое слово, имя команды.
$n Oтдельные аргументы командной строки,если больше 9 форма ${n}
$*,$@ Все аргументы командной строки ($1,$2..)
Пример 1
$ cat >param.sh
#!/bin/sh
echo "$#"
echo "$0"
echo "$?"
echo "$$"
echo "$@"
echo "$*"
exit 0
Запускаем скрипт с параметрами a b c d
$ sh param.sh a b c d
4
param.sh
0
2698
a b c d
a b c d
4.5 Дополнительные переменные.
$_ Временная переменная ,хранит последний аргумент предыдущей команды. Пример
$ ls -l f2.txt
–rw-rw-rw- 1 max1 max1 6 апр 24 12:57 f2.txt
$ echo $_
f2.txt
BASH Полный путь для вызова оболочки
$ echo $BASH
/usr/bin/bash
BASHOPTS Доступный для чтения список
активизированных в настоящий момент параметров оболочки.