Изменить оболочку с bash на ksh навсегда без прав администратора

Значением по умолчанию конфигурации git color.uiявляется auto, которое использует цвета только при выводе на TTY. Вы можете изменить это в своей конфигурации на always, чтобы вывод был окрашен независимо.

Наиболее полезным для вашего варианта использования является опция -cдля git, которая позволяет переопределить значение конфигурации только для текущей команды. Вы можете использовать это, чтобы установить color.uiна always:

.

var=$(git -c color.ui=always status)
printf '%s\n' "$var"

Обратите внимание, что во втором примере

var=$(echo "Text in \n\e[34mBlue")
echo -e $var

на самом деле это строка echo -e, которая вызывает появление цветов -управляющие коды не были интерпретированы echoвнутри подстановки команды, а обратная косая черта и другие символы были буквально там. Дело не в том, что цветовые коды были сохранены в то время и забыты, когда они пришли из git-, они были созданы в конце в одном случае и никогда в другом.

1
22.04.2021, 21:23
1 ответ

( Судя по комментариям... )Ваш администратор сказал вам добавить exec kshв ваш файл ~/.profile, но, похоже, это вам не подходит. Это не работает, потому что ваша оболочка входа в систему bashбудет использовать ~/.bash_profileвместо ~/.profile, если первая существует.

Поэтому вместо этого добавьте exec kshв файл ~/.bash_profile.

Лично я бы использовал что-то вроде следующего (, предполагая, что исполняемый файл оболочки kshнаходится по адресу/bin/ksh):

if [ -x /bin/ksh ]; then
    export SHELL=/bin/ksh
    exec "$SHELL" -l
fi

Это был бы весь мой файл ~/.bash_profile, и он бы запускался /bin/kshкак оболочка входа в систему, если бы /bin/kshсуществовал и был исполняемым. Затем оболочка kshзаменит оболочку bashи прочитает ваш файл ~/.profileи т. д. (, поэтому удалитеexec kshиз ~/.profile, если вы добавили его туда ). Ваш файл ~/.bashrcбольше не будет использоваться.

Приведенный выше код оставит вам оболочку bash, если по какой-то причине оболочка kshбудет удалена из вашей системы.

4
28.04.2021, 22:51

Теги

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