esh

Встраиваемый командный интерпретатор (QNX Neutrino)

Синтаксис:

esh [-c команда] [-irv] [файл_сценария]

Поддерживаемые платформы:

Neutrino

Опции:

-c команда

Выполнить данную команду.

-i

Перейти в интерактивный режим после выполнения файла сценария. Если эта опция не указана, утилита esh завершает работу после выполнения сценария.

-r


Запустить в ограниченном режиме. В этом режиме выполнение определенных операций не допускается. При попытке выполнения недопустимой операции появится сообщение об ошибке "Operation not permitted" ("Операция запрещена").

Недопустимые операции включают выполнение исполняемых файлов, начинающихся с косой черты, экспорт переменных и перенаправление стандартных потоков ввода, вывода и ошибок на другое устройство. Для получения дополнительной информации см. "Формат командной строки" и "Встроенные команды."

-v

Вывести расширенную информацию. Выводить каждую команду на экран перед выполнением.

файл_сценария


Файл, содержащий выполняемые команды командного интерпретатора.

Описание:

Утилита esh предоставляет подмножество функциональных возможностей, втсречающихся в стандартном командном интерпретаторе, /bin/sh. Использовать утилиту esh целесообразно в ситуациях, когда объем памяти ограничен. Например, ее можно использовать для выполнения простого файла инициализации встраиваемой системы.

Формат командной строки

В утилите esh для командной строки используется следующий формат:

команда аргумент1 аргумент2 ... [оператор-перенаправления файл] [&]

где:

команда

Выполняемая команда. Если команда начинается не с косой черты, то для нее используется путь, указанный в переменной среды PATH. В ограниченном режиме команда не может начинаться с косой черты.

оператор-перенаправления файл

Оператор перенаправления. При вызове команды в ее окружении устанавливаются три стандартных файла. Эти файлы, стандартный поток ввода, стандартный поток вывода и стандартный поток ошибок (stdin, stdout, stderr), обычно присоединены к активному терминалу. Стандартные потоки ввода, вывода и ошибок команды можно перенаправить следующим образом:

Значение

Результат

<файл

Перенаправить стандартный поток ввода из этого файла.

>файл

Перенаправить стандартный поток вывода в этот файл. Если файл существует, он перезаписывается; если файл не существует, он создается.

>>файл

Перенаправить стандартный поток вывода в этот файл. Если файл существует, информация присоединяется в конец файла; если файл не существует, он создается.

2>файл

То же, что и >файл, но для стандартного потока ошибок.

2>>файл

То же, что и >>файл, но для стандартного потока ошибок.

&

Если команда содержит не выделенный кавычками символ &, то утилита esh не ожидает завершения выполнения команды, а немедленно переходит к обработке следующей команды. Стандартный поток ввода команды перенаправляется из /dev/null, и сигналы SIGINT и SIGQUIT игнорируются.


Раскрытие шаблонов имен файлов

Большинство команд используется для тех или иных манипуляций с файлами. Соответственно, для утилиты esh предусмотрено "условное обозначение" имени файла (состоящее из знаков *, ?, [ и ]), которое можно использовать для определения файлов, которые должна обрабатывать команда. Это же условное обозначение используется и стандартным командным интерпретатором. Для получения дополнительной информации см. "Шаблоны имен файлов" в ksh.

Выделение специальных символов

Следующие символы имеют в утилите esh специальное значение:

& \ " * ? [ space


Выделение специальных символов кавычками используется для подавления специального значения этих символов и сохранения их прямого значения.

Заключение последовательности в двойные кавычки используется для выделения последовательности символов или слов. Для выделения одиночного символа используются двойные кавычки или символ начала управляющей последовательности (\) перед требуемым символом.

Символ начала управляющей последовательности (обратная косая черта)

Символ начала управляющей последовательности (\) сохраняет непосредственное значение следующего символа. Получить одиночный символ обратной косой черты при помощи экранирования специального символа \ двойными кавычками невозможно. Для получения символа обратной косой черты следует ввести \\.

Двойные кавычки

Заключение символов и слов в двойные кавычки ("") сохраняет прямое значение всех находящихся внутри двойных кавычек символов, за исключением символа \. Пример.

"ab cd"


представляет один пятизначный аргумент.

Прямое значение двойных кавычек можно сохранить с помощью символа \. Пример.

ab\"cd


представляет один пятизначный аргумент ab"cd.

Встроенные команды

Следующие команды являются встроенными в esh (т.е. утилита esh интерпретирует и выполняет их внутренними средствами):
Команда . (точка)

. файл

Команда . (точка) считывает и выполняет команды из файл в текущем окружении. Путь поиска, содержащийся в переменной среды PATH, используется для поиска каталога, который содержит файл. Для работы этой команды не требуется, чтобы файл был исполняемым.

Команда alias

alias [имя=значение]...


Без аргументов команда alias выводит список всех псевдонимов и их значений. Если указано только имя, выводится его значение. Любое имя, указанное со значением, определяет псевдоним.

Замена псевдонима выполняется, если первым словом оператора является определенный псевдоним, кроме тех случаев, когда этот псевдоним уже заменен.

Вывод списка всех псевдонимов:

alias

Удаление псевдонима:

alias имя=

Команда cd

cd [каталог]

Изменить рабочий каталог текущей среды выполнения. Если каталог не указан, значение переменной среды HOME становится новым рабочим каталогом.

Команда emount

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


Значение по умолчанию – qnx4.

Примечание. Команда emount была реализована в QNX Momentics 6.3.0 Service Pack 2 .

Команда ewaitfor

ewaitfor путь [макс_секунд [задержка]]

Ждать создания данного пути. Аргументы:

путь

Проверяемый путь.

макс_секунд

Максимальное количество секунд ожидания появления файла. Значение по умолчанию – 1 секунда.

задержка

Количество миллисекунд ожидания между попытками. Значение по умолчанию – 100 мсек.

Примечание. Команда ewaitfor была реализована в QNX Momentics 6.3.0 Service Pack 2.

Команда exec

exec [команда [аргумент...]]


Выполнить команду и/или манипулировать дескрипторами файлов.

Командой exec открываются, закрываются и копируются дескрипторы файлов в соответствии с указанными перенаправлениями ввода-вывода, представленными как часть аргумента аргумент. Если команда указана, она порождается в качестве замены для утилиты esh. Любые указанные аргументы передаются порожденному процессу.

Если утилита esh работает в ограниченном режиме (-r), то возможность использования команды exec для запуска команды, путь которой начинается с косой черты, отсутствует.

Команда exit

exit [n]

Вызвать завершение утилиты esh со статусом завершения n. Если n не указано, то утилита esh завершается со статусом последней выполненной команды.

Команда export

export имя[=слово]...

export -p


Отметить экспортируемые переменные среды. Таким образом, они находятся в среде выполняемых в дальнейшем команд. Если указана опция -p, то имена и значения всех экспортированных переменных записываются в стандартный поток вывода.

Если установлен ограниченный режим (-r), использование этой команды невозможно.

Команда kill

kill идентификатор_процесса


Установить сигнал SIGTERM для процесса с идентификатором процесса идентификатор_процесса.

Команда reopen

reopen [устройство]


Закрыть стандартные потоки ввода, вывода и ошибок и присоединить их к указанному устройству. Эта команда часто используется в сценариях запуска. Если устройство не указано, то используется /dev/con1.

Если установлен ограниченный режим (-r), использование этой команды невозможно.

Команда set

set -v


Активировать режим вывода расширенной информации; перед выполнением все команды выводятся в стандартный поток вывода.

Команда unset

unset переменная


Сбросить указанную переменную. Если установлен ограниченный режим (-r), использование этой команды невозможно.

Примеры:

Вызов порожденного командного интерпретатора:

esh

Вызов порожденного командного интерпретатора с файлом сценария:

esh /etc/backup

Выполнение следующей команды и завершение работы:

esh -c "ls /bin"

Файлы:

/etc/esh


Текстовый файл ASCII, содержащий команды командного интерпретатора, выполняется при запуске утилиты esh в качестве начального командного интерпретатора.

Переменные среды:

HOME

Путевое имя основного каталога пользователя.

LOGNAME

Регистрационное имя пользователя в системе (см. login)

PATH


Путь к каталогам, используемый утилитой esh для поиска исполняемых программ и сценариев командного интерпретатора esh. Для изменения переменной среды PATH необходимо использовать команду export.

Если переменная среды PATH при вызове утилиты esh отсутствует в существующем окружении, для нее устанавливается значение /bin:/usr/bin. Для получения дополнительной информации об установке переменной среды PATH см. "Setting PATH and LD_LIBRARY_PATH" ("Установка переменных PATH и LD_LIBRARY_PATH") в главе "Configuring Your Environment" ("Конфигурирование среды") «Руководства системного программиста (администратора)» КПДА.10964-01 32.

SHELL

Путевое имя предпочтительного командного интерпретатора пользователя.

TERM

Тип терминала.

TMPDIR

Имя каталога для создания временных файлов утилит.

TZ


Установка часового пояса.

Предупреждения:

Текущая версия утилиты esh удаляет одинарные кавычки ('), в результате чего многие команды, такие как find, невозможно использовать обычным способом.