Поместите скрипты в каталог в вашем PATH
, Bash source
использует его для поиска скрипта в источнике. Это можно изменить с помощью shopt sourcepath
, но по умолчанию он включен.
Другой вариант — создать псевдоним или функцию для получения сценария из пути, по которому он находится, или даже поместить все назначение подсказки в функцию. Это также имело бы то преимущество, что вам не нужно было бы явно использовать .
или source
для вызова скрипта.
Кстати, \$
расширяется до #
, если вы являетесь пользователем root, поэтому нет необходимости устанавливать отдельный путь для пользователя root только для этого.
Что export
делает с назначениями, так это делает переменную окружения видимой для любых других оболочек, которые вы можете запускать в текущей оболочке. Хотя с PS1
есть проблема, что не -интерактивные оболочки очищают его, поэтому он обычно сбрасывается в .bashrc
.
Разобрался-
Оболочка выполняет конвейер, а не процесс. sudo echo
не дает bash прав на редактирование /etc
. Вот обходной путь, который я нашел:
echo ko_KR.UTF-8 UTF-8 | sudo tee -a /etc/locale.gen
Теперь я передаю вывод echo
в нечто с привилегиями sudo (tee ), которое просто записывает в файл.
Если кто-то найдет более простой способ сделать это, я отмечу его как правильный ответ:)