Конвейер с ">>" в /etc/locale.gen -разрешение отклонено с помощью sudo

Поместите скрипты в каталог в вашем PATH, Bash sourceиспользует его для поиска скрипта в источнике. Это можно изменить с помощью shopt sourcepath, но по умолчанию он включен.

Другой вариант — создать псевдоним или функцию для получения сценария из пути, по которому он находится, или даже поместить все назначение подсказки в функцию. Это также имело бы то преимущество, что вам не нужно было бы явно использовать .или sourceдля вызова скрипта.

Кстати, \$расширяется до #, если вы являетесь пользователем root, поэтому нет необходимости устанавливать отдельный путь для пользователя root только для этого.

Что exportделает с назначениями, так это делает переменную окружения видимой для любых других оболочек, которые вы можете запускать в текущей оболочке. Хотя с PS1есть проблема, что не -интерактивные оболочки очищают его, поэтому он обычно сбрасывается в .bashrc.

0
10.09.2020, 20:21
1 ответ

Разобрался-

Оболочка выполняет конвейер, а не процесс. sudo echoне дает bash прав на редактирование /etc. Вот обходной путь, который я нашел:

echo ko_KR.UTF-8 UTF-8 | sudo tee -a /etc/locale.gen

Теперь я передаю вывод echoв нечто с привилегиями sudo (tee ), которое просто записывает в файл.

Если кто-то найдет более простой способ сделать это, я отмечу его как правильный ответ:)

0
18.03.2021, 23:05

Теги

Похожие вопросы