|
Поиск по сайту:
Главная
О проекте
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` |
Команда исполняется в подоболочке,
результат записывается в переменную |
Назад |Содержание | Вперед
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|
|
|