| |
Поиск по сайту:
Главная
О проекте
Web-мастеру
HTML & JavaScript
SSI
Perl
PHP
XML & XSLT
Unix Shell
MySQL
Безопасность
Хостинг
Другое
|
|
Приложение B. Справочная информация
В нижеследующем справочнике представлена информация, касающаяся отдельных моментов написания сценариев на языке командной оболочки Bash.
Таблица B-1. Переменные специального назначения
| Переменная |
Описание |
| $0 |
Имя файла сценария |
| $1 |
Позиционный параметр #1 (аргумент сценария или функции) |
| $2 - $9 |
Позиционные параметры #2 - #9 |
| ${10} |
Позиционный параметр #10 |
| $# |
Количество позиционных параметров |
| "$*" |
Все позиционные параметры (как одно слово) * |
| "$@" |
Все позиционные параметры (в виде отдельных строк) |
| ${#*} |
Количество позиционных параметров, переданых из командной строки |
| ${#@} |
Количество позиционных параметров, переданых из командной строки |
| $? |
Возвращаемое значение |
| $$ |
Идентификатор процесса -- Process ID (PID) сценария |
| $- |
Флаги, переданные сценарию (командой set) |
| $_ |
Последний аргумент предыдущей команды |
| $! |
Идентификатор последнего фонового процесса (PID) |
* Необходимо заключать в кавычки, в противном случае будет работать как "$@".
Таблица B-2. Операции проверки: Двухместные операции
| Оператор |
Значение |
----- |
Оператор |
Значение |
| Ё |
Ё |
Ё |
Ё |
Ё |
| Арифметическое сравнение |
Ё |
Ё |
Сравнение строк |
Ё |
| -eq |
Равно |
Ё |
= |
Равно |
| Ё |
Ё |
Ё |
== |
Равно |
| -ne |
Не равно |
Ё |
!= |
Не равно |
| -lt |
Меньше |
Ё |
\< |
Меньше (в кодах ASCII) * |
| -le |
Меньше или равно |
Ё |
Ё |
Ё |
| -gt |
Больше |
Ё |
\> |
Больше (в кодах ASCII) * |
| -ge |
Больше или равно |
Ё |
Ё |
Ё |
| Ё |
Ё |
Ё |
-z |
Пустая строка |
| Ё |
Ё |
Ё |
-n |
Не пустая строка |
| Ё |
Ё |
Ё |
Ё |
Ё |
| Арифметическое сравнение |
В двойных круглых скобках (( ... )) |
Ё |
Ё |
Ё |
| > |
Больше |
Ё |
Ё |
Ё |
| >= |
Больше или равно |
Ё |
Ё |
Ё |
| < |
Меньше |
Ё |
Ё |
Ё |
| <= |
Меньше или равно |
Ё |
Ё |
Ё |
* При использовании двойных
квадратных скобок [[ ... ]] , необходимо использовать
экранирующий символ \ .
Таблица B-3. Операции проверки: Файлы
| Оператор |
Что проверяется |
----- |
Оператор |
Что проверяется |
| -e |
Файл существует |
Ё |
-s |
Файл не нулевой длины |
| -f |
Обычный файл |
Ё |
Ё |
Ё |
| -d |
Файл является каталогом |
Ё |
-r |
Файл доступен для чтения |
| -h |
Файл является символической
ссылкой |
Ё |
-w |
Файл доступен для записи |
| -L |
Файл является символической
ссылкой |
Ё |
-x |
Файл доступен для исполнения |
| -b |
Файл блочного устройства |
Ё |
Ё |
Ё |
| -c |
Файл символного устройства |
Ё |
-g |
Установлен флаг sgid |
| -p |
Файл является каналом
(pipe) |
Ё |
-u |
Установлен флаг suid |
| -S |
Файл является сокетом
(socket) |
Ё |
-k |
Установлен бит "sticky" |
| -t |
Файл связан с терминальным
устройством |
Ё |
Ё |
Ё |
| Ё |
Ё |
Ё |
Ё |
Ё |
| -N |
Файл был модифицирован с момента
последнего чтения |
Ё |
F1 -nt F2 |
Файл F1 более новый, чем F2 * |
| -O |
Вы являетесь владельцем файла |
Ё |
F1 -ot F2 |
Файл F1 более старый, чем F2 * |
| -G |
Вы принадлежите к той же группе, что и
файл |
Ё |
F1 -ef F2 |
Файлы F1 и F2 являются жесткими
ссылками на один и тот же файл * |
| Ё |
Ё |
Ё |
Ё |
Ё |
| ! |
"NOT" (логическое отрицание
(инверсия) результатов всех вышеприведенных
проверок) |
Ё |
Ё |
Ё |
* Двухместный оператор
(требует наличия двух операндов).
Таблица B-4. Подстановка параметров и
экспансия
| Выражение |
Описание |
| ${var} |
Значение переменной var, то же, что и $var |
| Ё |
Ё |
| ${var-DEFAULT} |
Если переменная var не инициализирована, то
результатом вычисления выражения является $DEFAULT * |
| ${var:-DEFAULT} |
Если переменная var не инициализирована или
пуста, то результатом вычисления выражения является
$DEFAULT * |
| Ё |
Ё |
| ${var=DEFAULT} |
Если переменная var не инициализирована, то
результатом вычисления выражения является $DEFAULT * |
| ${var:=DEFAULT} |
Если переменная var не инициализирована, то
результатом вычисления выражения является $DEFAULT * |
| Ё |
Ё |
| ${var+OTHER} |
Если переменная var инициализирована, то
результатом вычисления выражения является $OTHER, иначе -- пустая
строка |
| ${var:+OTHER} |
Если переменная var инициализированаset, то
результатом вычисления выражения является $OTHER, иначе -- пустая
строка |
| Ё |
Ё |
| ${var?ERR_MSG} |
Если переменная var не инициализирована, то
выводится $ERR_MSG * |
| ${var:?ERR_MSG} |
Если переменная var не инициализирована, то
выводится $ERR_MSG * |
| Ё |
Ё |
| ${!varprefix*} |
Соответствует всем ранее объявленным
переменным, чьи имена начинаются с varprefix |
| ${!varprefix@} |
Соответствует всем ранее объявленным
переменным, чьи имена начинаются с varprefix |
* Само собой разумеется, если
переменная var инициализирована, то
результатом выражения будет $var.
Таблица B-5. Операции со строками
| Выражение |
Описание |
| ${#string} |
Длина строки $string |
| Ё |
Ё |
| ${string:position} |
Извлечение подстроки из строки $string, начиная с позиции
$position |
| ${string:position:length} |
Извлечение $length символов из строки
$string, начиная
с позиции $position |
| Ё |
Ё |
| ${string#substring} |
Поиск кратчайшего совпадения по шаблону
$substring, в
строке $string,
поиск ведется с начала строки |
| ${string##substring} |
Поиск самого длинного совпадения по
шаблону $substring, в строке
$string, поиск
ведется с начала строки |
| ${string%substring} |
Поиск кратчайшего совпадения по шаблону
$substring, в
строке $string,
поиск ведется с конца строки |
| ${string%%substring} |
Поиск самого длинного совпадения по
шаблону $substring, в строке
$string, поиск
ведется с конца строки |
| Ё |
Ё |
| ${string/substring/replacement} |
Замена первой, найденой по шаблону
$substring,
подстроки на подстроку $replacement |
| ${string//substring/replacement} |
Замена всех, найденых по шаблону
$substring,
подстрок на подстроку $replacement |
| ${string/#substring/replacement} |
Если в строке $string найдено
соответствие шаблону $substring и найденая
подстрока начинает строку $string, то она заменяется
подстрокой $replacement |
| Если в строке $string найдено
соответствие шаблону $substring и найденая
подстрока заканчивает строку $string, то она заменяется
подстрокой $replacement |
Ё |
| Ё |
Ё |
| Ё |
Ё |
| expr match
"$string" '$substring' |
Количество совпадений с шаблоном
$substring* в
строке $string,
поиск начинается с начала строки |
| expr
"$string" : '$substring' |
Количество совпадений с шаблоном
$substring* в
строке $string,
поиск начинается с начала строки |
| expr index
"$string" $substring |
Позиция (номер символа), первого
найденого совпадения с шаблоном $substring, в строке
$string |
| expr substr $string
$position $length |
Извлечение $length символов из строки
$string, начиная
с позиции $position |
| expr match
"$string"
'\($substring\)' |
Извлечение подстроки с начала строки
$string,
совпадающей с шаблоном $substring* |
| expr
"$string" :
'\($substring\)' |
Извлечение подстроки с начала строки
$string,
совпадающей с шаблоном $substring* |
| expr match
"$string"
'.*\($substring\)' |
Извлечение подстроки с конца строки
$string,
совпадающей с шаблоном $substring* |
| expr
"$string" :
'.*\($substring\)' |
Извлечение подстроки с конца строки
$string,
совпадающей с шаблоном $substring* |
* Где $substring -- регулярное выражение.
Таблица B-6. Прочие конструкции
| Выражение |
Описание |
| Ё |
Ё |
| Квадратные скобки |
Ё |
| if [ CONDITION
] |
Проверка условия |
| if [[ CONDITION
]] |
Расширеный синтаксис операции проверки
условия |
| Array[1]=element1 |
Инициализация массива |
| [a-z] |
Диапазон символов в регулярных
выражениях |
| Ё |
Ё |
| Фигурные скобки |
Ё |
| ${variable} |
Подстановка параметра |
| ${!variable} |
Косвенная ссылка на переменную |
| { command1; command2
} |
Блок кода |
| {string1,string2,string3,...} |
Подстановка |
| Ё |
Ё |
| Ё |
Ё |
| Круглые скобки |
Ё |
| ( command1; command2
) |
Группа команд, исполняемая в подоболочке
(subshell) |
| Array=(element1
element2 element3) |
Инициализация массива |
| result=$(COMMAND) |
Команда исполняется в подоболочке,
результат записывается в переменную |
| >(COMMAND) |
Подстановка процесса |
| <(COMMAND) |
Подстановка процесса |
| Ё |
Ё |
| Двойные круглые скобки |
Ё |
| (( var = 78
)) |
Целочисленная арифметика |
| var=$(( 20 + 5
)) |
Арифметическое выражение, результат
записывается в переменную |
| Ё |
Ё |
| Кавычки |
Ё |
| "$variable" |
"Мягкие", или
"нестрогие" кавычки |
| 'string' |
"Строгие", или
"полные" кавычки |
| Ё |
Ё |
| Обратные кавычки |
Ё |
| result=`COMMAND` |
Команда исполняется в подоболочке,
результат записывается в переменную |
Назад |Содержание | Вперед
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|
|
|