set -e
Salga inmediatamente si un comando sale con un estado distinto de -cero.
Dado que pgrep
falla cuando no hay una coincidencia PID
, no puede ejecutar la instrucción echo "after"
.
Creo que eliminar set -e
debería resolver tu problema.
Для любой программы, которой просто нужно прочитать настройки переменных окружения, /etc/locale.conf
и /etc/environment
в основном одинаковы; в очень упрощенной встроенной системе вы можете опустить /etc/locale.conf
и вместо этого поместить все необходимые переменные локали в /etc/environment
.
Разница в основном заключается в том, как поступать с обновлением файлов.
Для /etc/locale.conf
набор переменных, которые, как ожидается, будут определены в файле, является конечным, и их синтаксис хорошо -определен. Это позволяет упростить модификацию программами. Например, приложение с графическим интерфейсом «язык/региональные настройки» может легко считывать существующие настройки, представлять их пользователю,а затем re -записать весь файл , если пользователь сделает новый выбор.
Восстановление после синтаксических ошибок также простое. :Если приложение настроек обнаруживает синтаксическую ошибку в файле, оно может просто представить настройки, которые ему удалось прочитать, позволить пользователю либо принять текущую конфигурацию, либо внести изменения, а затем re -напишите файл на основе какого-то шаблона, встроенного в приложение, и ошибка будет прозрачно исправлена.
Для /etc/environment
набор переменных окружения, которые можно там определить, не ограничен, поэтому любые программные манипуляции с файлом нужно производить гораздо тщательнее.
Кроме того, /etc/environment
и /etc/locale.conf
определяют общесистемные -общие значения по умолчанию, в то время как ~/.bashrc
является специфичным для пользователя :с использованием ~/.bashrc
, пользователь может переопределить системные значения по умолчанию только для своего сеанса (s ), если это необходимо.