Как убедиться, что я использую последнюю версию bash?

Я просто установил bash v4.1.0 на свою машину.

Старая версия находится под /bin/bash . Есть ли способ использовать новую версию bash без замены старого из /bin ? Я хочу, чтобы более новая версия использовалась по умолчанию

 $ which bash /bin/bash $ bash --version GNU bash, version 3.00.15(1)-release (i686-redhat-linux-gnu) Copyright (C) 2004 Free Software Foundation, Inc. $ ~/bash/bash-4.1/bash --version GNU bash, version 4.1.0(1)-release (i686-pc-linux-gnu) Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. $ 

2 Solutions collect form web for “Как убедиться, что я использую последнюю версию bash?”

Прежде всего, убедитесь, что ваш любимый bash находится в $PATH перед системным. Также установите переменную окружения SHELL в полный путь к вашей любимой интерактивной оболочке (предположительно, вашей собственной установленной версии bash).

Вы не можете установить свою собственную оболочку в качестве оболочки входа без вмешательства root, но обычно вам не нужно ничего лучше, чем POSIX sh в ~/.profile . Вы можете положить exec $SHELL в конец ~/.profile чтобы вы получили свою любимую интерактивную оболочку в сеансах консоли или ssh, но убедитесь, что вы не делаете ее из оболочек, которые не являются интерактивными (например, некоторые Linux дистрибутивы имеют X сеансовых скриптов, начинающихся с #!/bin/bash --login ). Трудно точно определить, когда разумно вызывать exec в .profile , но в большинстве случаев тестирование взаимодействия с оболочкой выполняется; вы можете сделать что-то вроде этого:

 case $- in *i*) :;; *) exec "$SHELL";; esac 

Если вы не root, это все, что вы можете сделать. В частности, скрипты, возглавляемые #!/bin/bash будут продолжать использовать системный bash, а скрипты, возглавляемые #!/usr/bin/env bash будут использовать ваши.

Если вы являетесь пользователем root, вы можете добавить свою установку bash в /etc/shells , после чего вы можете использовать chsh для изменения вашей оболочки входа в нее. Вы также можете заменить /bin/bash своей собственной версией, но я бы не рекомендовал это для такого критического компонента системы. Если вы действительно хотите заменить /bin/bash , по крайней мере, пусть ваш менеджер пакетов счастлив; в системе на основе dpkg вы можете использовать dpkg-divert .

Вы можете установить оболочку вашего пользователя по умолчанию с помощью команды usermod с параметром -s (требуется привилегии root):

 sudo usermod -s /home/lazer/bash/bash-4.1/bash lazer 
  • Возврат перенаправления и вывода строки и понимания
  • не может понять обратную косую черту в двойных кавычках bash
  • выберите одну из двух программ в сценарии bash
  • Сценарий оболочки, выполняющий два сценария Perl на основе ввода
  • Выход трубопровода из программы segfaulting
  • Стандартное предпочтение исполняемого файла над встроенными модулями с тем же именем
  • Как установить, какая оболочка использует Midnight Commander?
  • sed для поиска нескольких слов и удаления этих строк
  • Почему квадратные скобки препятствуют расширению оболочки?
  • Значение
  • Какая польза от использования точки до / дома?
  • Linux и Unix - лучшая ОС в мире.