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




Программирование на языке сценариев командной оболочки - стр. 339


ru.po:

#: a:6 msgid "Can't cd to %s." msgstr "Невозможно перейти в каталог %s." #: a:7 msgid "Enter the value: " msgstr "Введите число: "

Затем запустите msgfmt.

msgfmt -o localized.sh.mo ru.po

Перепишите получившийся файл localized.sh.mo в каталог /usr/share/locale/ru/LC_MESSAGES и добавьте в начало сценария строки:

TEXTDOMAINDIR=/usr/share/locale TEXTDOMAIN=localized.sh

Если система корректно настроена на русскую локаль, то пользователь, запустивший сценарий, будет видеть сообщения на русском языке.

В старых версиях Bash или в других командных оболочках, потребуется воспользоваться услугами утилиты gettext, с ключом -s. В этом случае наш сценарий будет выглядеть так:

#!/bin/bash # localized.sh

E_CDERROR=65

error() { local format=$1 shift printf "$(gettext -s "$format")" "$@" >&2 exit $E_CDERROR } cd $var || error "Can't cd to %s." "$var" read -p "$(gettext -s "Enter the value: ")" var # ...

А переменные TEXTDOMAIN и TEXTDOMAINDIR, необходимо будет экспортировать в окружение.

---

Автор этого приложения: Stephane Chazelas.

Приложение F. История команд

Командная оболочка Bash предоставляет в распоряжение пользователя инструментарий командной строки, позволяющий управлять историей команд. История команд -- это, прежде всего, очень удобный инструмент, сокращающий ручной ввод.

История команд Bash:

history

fc

bash$ history

1 mount /mnt/cdrom 2 cd /mnt/cdrom 3 ls ...

Внутренние переменные Bash, связанные с историей команд:

$HISTCMD

$HISTCONTROL

$HISTIGNORE

$HISTFILE

$HISTFILESIZE

$HISTSIZE

!!

!$

!#

!N

!-N

!STRING

!?STRING?

^STRING^string^

К сожалению, инструменты истории команд, в Bash, совершенно бесполезны в сценариях.

#!/bin/bash # history.sh # Попытка воспользоваться 'историей' команд в сценарии.

history

# На экран ничего не выводится. # История команд не работает в сценариях.




Содержание  Назад  Вперед