Intereting Posts
Xfce и Xscreensaver, похоже, не рассматривают активность активности клавиатуры – как изменения? Shell Script для изоляции файлов, разбросанных по разным папкам найти и убить все экземпляры докеров старше 1 дня Запуск приложения без удержания терминала Могу ли я отключить perl со списком из команды поиска unix? Как использовать rsync с помощью samba share Отключить полностью пост-проверку HELO Выполнять команды, когда конкретный пользователь и ip-вход в ssh Является ли PXEBooting способ быстрого восстановления сервера? GNU / Linux: наложение блочного устройства / штабелируемое блочное устройство Список версий программного обеспечения по умолчанию для данного выпуска Ubuntu Удалить файлы в пакете .7z Howto Tell, если система аутентифицируется только с паролем или через PAM Какие директора FHS я могу передать на аутсорсинг и как? Переименование файлов в каталоге в соответствии с именем каталога

код выхода grep в ловушке, где скрипт запускается при помощи функции upstart

Недавно я столкнулся с проблемой в выскочке ubuntu и ловушке в оболочке Bash.

Я использую ubuntu 12.04. Сценарий выскочка (/etc/init/player.conf):

start on (local-filesystems and runlevel [2345]) stop on runlevel [06] script /tmp/test.sh end script 

/tmp/test.sh :

 #!/bin/bash TOKEN="token" TOKEN_FILE="/tmp/token" OUTPUT_FILE="/tmp/test_exit" func() { grep "$TOKEN" "$TOKEN_FILE"; echo $? >> "$OUTPUT_FILE"; exit 0 } trap 'trap "" INT TERM QUIT EXIT; func' INT TERM QUIT EXIT rm -f "$OUTPUT_FILE" echo "$TOKEN" > "$TOKEN_FILE" grep "$TOKEN" "$TOKEN_FILE"; echo $? >> "$OUTPUT_FILE"; sleep 1000 exit 0 

Процедура тестирования:

 $sudo service player start $sudo service player stop $cat /tmp/test_exit 0 2 

Мой вопрос: почему второй результат равен 2, так как файл (/ tmp / token) не изменяется, grep должен найти строку («токен») в этом файле («/ tmp / token»).