Встраиваемый командный интерпретатор
esh [-c команда] [-irv] [файл_сценария]
ЗОСРВ «Нейтрино»
aarch64, arm, armv7, e2k, mips, ppc, x86
Утилита esh предоставляет подмножество функциональных возможностей, втсречающихся в стандартном командном интерпретаторе, /bin/sh
. Использовать утилиту esh целесообразно в ситуациях, когда объем памяти ограничен. Например, ее можно использовать для выполнения простого файла инициализации встраиваемой системы.
Формат командной строки
В утилите esh для командной строки используется следующий формат:
команда аргумент1 аргумент2 ... [оператор-перенаправления файл] [&]
где:
PATH
. В ограниченном режиме команда не может начинаться с косой черты. Значение | Результат |
---|---|
<файл | Перенаправить стандартный поток ввода из этого файла. |
>файл | Перенаправить стандартный поток вывода в этот файл. Если файл существует, он перезаписывается; если файл не существует, он создается. |
>>файл | Перенаправить стандартный поток вывода в этот файл. Если файл существует, информация присоединяется в конец файла; если файл не существует, он создается. |
2>файл | То же, что и >файл , но для стандартного потока ошибок. |
2>>файл | То же, что и >>файл , но для стандартного потока ошибок. |
& | Если команда содержит не выделенный кавычками символ & , то утилита esh не ожидает завершения выполнения команды, а немедленно переходит к обработке следующей команды. Стандартный поток ввода команды перенаправляется из /dev/null , и сигналы SIGINT и SIGQUIT игнорируются. |
Раскрытие шаблонов имен файлов
Большинство команд используется для тех или иных манипуляций с файлами. Соответственно, для утилиты esh предусмотрено "условное обозначение" имени файла (состоящее из знаков *
, ?
, [
и ]
), которое можно использовать для определения файлов, которые должна обрабатывать команда. Это же условное обозначение используется и стандартным командным интерпретатором. Для получения дополнительной информации см. "Шаблоны имен файлов" в ksh.
Выделение специальных символов
Следующие символы имеют в утилите esh специальное значение:
& \ " * ? [ space
Выделение специальных символов кавычками используется для подавления специального значения этих символов и сохранения их прямого значения.
Заключение последовательности в двойные кавычки используется для выделения последовательности символов или слов. Для выделения одиночного символа используются двойные кавычки или символ начала управляющей последовательности (\
) перед требуемым символом.
Символ начала управляющей последовательности (обратная косая черта)
Символ начала управляющей последовательности (\
) сохраняет непосредственное значение следующего символа. Получить одиночный символ обратной косой черты при помощи экранирования специального символа \
двойными кавычками невозможно. Для получения символа обратной косой черты следует ввести \\
.
Двойные кавычки
Заключение символов и слов в двойные кавычки ("") сохраняет прямое значение всех находящихся внутри двойных кавычек символов, за исключением символа \
. Пример.
"ab cd"
представляет один пятизначный аргумент.
Прямое значение двойных кавычек можно сохранить с помощью символа \
. Пример.
ab\"cd
представляет один пятизначный аргумент ab"cd
.
Встроенные команды
Следующие команды являются встроенными в esh (т.е. утилита esh интерпретирует и выполняет их внутренними средствами):
. файл
Команда .
(точка) считывает и выполняет команды из файл в текущем окружении. Путь поиска, содержащийся в переменной среды PATH
, используется для поиска каталога, который содержит файл. Для работы этой команды не требуется, чтобы файл был исполняемым.
alias [имя=значение]...
Без аргументов команда alias выводит список всех псевдонимов и их значений. Если указано только имя, выводится его значение. Любое имя, указанное со значением, определяет псевдоним.
Замена псевдонима выполняется, если первым словом оператора является определенный псевдоним, кроме тех случаев, когда этот псевдоним уже заменен.
Вывод списка всех псевдонимов:
alias
Удаление псевдонима:
alias имя=
cd [каталог]
Изменить рабочий каталог текущей среды выполнения. Если каталог не указан, значение переменной среды HOME
становится новым рабочим каталогом.
emount специальное_устройство каталог [тип_фс]
Монтировать специальное устройство. Аргументы:
Тип: | Файловая система или менеджер: |
---|---|
cd | fs-cd.so |
cifs | fs-cifs |
dos | fs-dos.so |
ext2 | fs-ext2.so |
mac | fs-mac.so |
nfs | fs-nfs2, fs-nfs3 |
nt | fs-nt.so |
qnx4 (по умолчанию) | fs-qnx4.so |
qnx6 | fs-qnx6.so |
udf | fs-udf.so |
ewaitfor путь [макс_секунд [задержка]]
Ждать создания данного пути. Аргументы:
1
секунда. 100
мсек.
exec [команда [аргумент...]]
Выполнить команду и/или манипулировать дескрипторами файлов.
Командой exec открываются, закрываются и копируются дескрипторы файлов в соответствии с указанными перенаправлениями ввода-вывода, представленными как часть аргумента аргумент. Если команда указана, она порождается в качестве замены для утилиты esh. Любые указанные аргументы передаются порожденному процессу.
Если утилита esh работает в ограниченном режиме (-r), то возможность использования команды exec для запуска команды, путь которой начинается с косой черты, отсутствует.
exit [n]
Вызвать завершение утилиты esh со статусом завершения n. Если n не указано, то утилита esh завершается со статусом последней выполненной команды.
export имя[=слово]... export -p
Отметить экспортируемые переменные среды. Таким образом, они находятся в среде выполняемых в дальнейшем команд. Если указана опция -p, то имена и значения всех экспортированных переменных записываются в стандартный поток вывода.
Если установлен ограниченный режим (-r), использование этой команды невозможно.
kill идентификатор_процесса
Установить сигнал SIGTERM
для процесса с идентификатором процесса идентификатор_процесса.
reopen [устройство]
Закрыть стандартные потоки ввода, вывода и ошибок и присоединить их к указанному устройству. Эта команда часто используется в сценариях запуска. Если устройство не указано, то используется /dev/con1
.
Если установлен ограниченный режим (-r), использование этой команды невозможно.
set -v
Активировать режим вывода расширенной информации; перед выполнением все команды выводятся в стандартный поток вывода.
unset переменная
Сбросить указанную переменную. Если установлен ограниченный режим (-r), использование этой команды невозможно.
Вызов порожденного командного интерпретатора:
esh
Вызов порожденного командного интерпретатора с файлом сценария:
esh /etc/backup
Выполнение следующей команды и завершение работы:
esh -c "ls /bin"
PATH
необходимо использовать команду export. PATH
при вызове утилиты esh отсутствует в существующем окружении, для нее устанавливается значение /bin:/usr/bin
. Для получения дополнительной информации об установке переменной среды PATH
см. "Setting PATH and LD_LIBRARY_PATH" ("Установка переменных PATH и LD_LIBRARY_PATH") в главе «Конфигурирование среды» документа «Руководство системного программиста (администратора)» КПДА.10964-01. Текущая версия утилиты esh удаляет одинарные кавычки ('
), в результате чего многие команды, такие как find, невозможно использовать обычным способом.
Базовые подсистемы ЗОСРВ «Нейтрино»
Предыдущий раздел: Утилиты