(изучая bash) Я пытался проверить версию bash, поэтому набрал /bin/bash -v
.
Это вывело на экран много текста (содержимое .bashrc и другие файлы из него).
Мог ли я что-то испортить (например, перезаписать некоторые файлы конфигурации / установить неправильные переменные окружения и т. Д.) Из-за этой команды?
Я также не могу найти документацию о том, для чего -v
коммутатор.
command-line
bash
Zabba
источник
источник
bash -v
вы вызвали новую оболочку bash с активированным режимом verbose, поэтому вы увидите подробный вывод для дальнейших команд (как минимум, вы увидитеprintf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"
). Чтобы закончить многословие, введитеexit
команду - вы вернетесь в исходную не многословную оболочку bash (или в любую оболочку, в которой вы были).Ответы:
-v
Параметр Баша означает многословный, и инструктирует Баш распечатать столько информации , сколько возможно о том, что она делает. При запуске он распечатает всю конфигурацию, в которой он читает.Чтобы распечатать информацию о версии для bash, используйте
bash --version
.источник
echo "$BASH_VERSION"
, Также есть специальный массив (BASH_VERSINFO), содержащий каждый номер версии в отдельных элементах.if ((BASH_VERSINFO[0] < 4)); then echo "Sorry, you need at least bash-4.0 to run this script." >&2; exit 1; fi
[ "${BASH_VERSINFO}" -lt 4 ]
или[ "${BASH_VERSINFO[0]}" -lt 4 ]
При запуске bash (например, from
gnome-terminal
) вы можете проверить значениеBASH_VERSION
переменной окружения.Если значение пусто, вы не работаете
bash
.источник
bash --version
, потому что он подтверждает, что вы в настоящее время используете bash, а не только то, что bash установлен в вашей системе.bash --version
не показывает bash, который вы используете в данный момент.BASH_VERSION
не гарантирует, что вы работаетеbash
:export BASH_VERSION; csh -c 'echo $BASH_VERSION $SHELL $shell'
так что$BASH_VERSION
может быть установленcsh
также$SHELL --version
, но снова SHELL может быть перезаписан (и все оболочки не поддерживают флаг --version).Существует комбинация клавиш, которая дает указание текущей информации оболочки:
Ctrl+ x Ctrl+v
Из
man bash
Это лучший выбор, если вы перепутали с переменными окружения.
источник
Нет, все в порядке. От
man bash
:Это просто не так тихо, как обычно. Пытаться
вместо.
источник
Обычный
--version
может дать вам слишком много многопоточных шаблонов, так что я используюисточник
bash
оболочке. Одним из способов, которым это полезно, является то, что ему не нужна оболочка, используемая в данный моментbash
. Другое заключается в том, что даже вbash
нем можно (хотя и не хорошо ) установитьBASH_VERSION
другое значение. Его можно даже экспортировать как переменную среды. Однако даже после запускаexport BASH_VERSION=foobar
приведенный здесь метод работает, поскольку новаяbash
оболочкаBASH_VERSION
автоматически сбрасывает свою собственную перед выполнением расширения параметра, которое его читает.bash --version
говорит4.3.48(1)-release
иapt-cache policy bash
говорит,4.3-14ubuntu1.2
и я проверил, что исполняемыйbash
файл происходит из пакета 'bash'. Как это следует интерпретировать? Существует аналогичное несоответствие дляusb-creator-gtk
, и в этом случае вывод apt-cache верен. - Можем ли мы сделать вывод, что более высокий номер версии является правильным (а кто-то забыл обновить другой)?4.3.48...
это версия Bash,4.3-14...
это версияbash
пакета.Чтобы получить только версию, а не многострочный текст:
источник