Встраиваемый
командный интерпретатор (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
интерпретирует и выполняет их внутренними средствами):
-
.
(точка)
-
alias
-
cd
-
emount
-
ewaitfor
-
exec
-
exit
-
export
-
kill
-
reopen
-
set
-
unset
Команда .
(точка)
.
файл
Команда . (точка)
считывает и выполняет команды из файл
в текущем окружении. Путь поиска, содержащийся в переменной
среды 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,
невозможно использовать обычным способом.