Как я нахожу версию удара, которым я управляю?

(изучение удара) Я пытался проверить версию удара, таким образом, я напечатал /bin/bash-v .

Это произвело много текста к экрану (содержание .bashrc и другие файлы, поставленные от него).

Я, возможно, ввернул что-то (как переписывание некоторых файлов/урегулирования конфигурации неправильные переменные окружения и т.д.) из-за той команды?

Я также не могу найти документацию относительно того, для чего -v выключатель.

143
Если вы бежали удар-v , вы призвали новую раковину удара с многословным активированным способом, таким образом, вы будете видеть многословную продукцию для дальнейших команд (в очень минимальном you' ll видят printf "\033] 0; %s % s: % s\007" "$ {ПОЛЬЗОВАТЕЛЬ}" "$ {ИМЯ ХОСТА %%.*}" "$ {PWD/ $HOME/ #; ~}" ). Чтобы закончить многословие, напечатайте выход команда - вы вернетесь в оригинальной немногословной раковине удара (или безотносительно раковины, вы были в).
добавлено автор ADTC, источник

6 ответы

-v параметр для удара обозначает многословный, и приказывает удару распечатывать как можно больше информации о том, что это делает. На запуске это распечатает всю конфигурацию, в которой это читает.

Чтобы распечатать информацию о версии для удара, используйте удар - версия .

140
добавлено
Большой! Я также нашел список выключателей для удара.
добавлено автор agnul, источник
Слишком многословный, намного легче с askubuntu.com/a/899187/1004
добавлено автор Martin Beracochea, источник
Альтернативно, если you' ре, уже управляющее раковиной удара, можно произвести содержание специальной переменной BASH_VERSION. эхо "$BASH_VERSION" . There' s также специальное множество (BASH_VERSINFO), содержащий каждый номер версии в отдельных элементах. , если ((BASH_VERSINFO [0] <4)); тогда отзовитесь эхом, "Извините, вы должны, по крайней мере, колотить 4.0, чтобы управлять этим сценарием".> &2; выход 1; fi
добавлено автор geirha, источник
опечатка, должно быть что-то как ["$ {BASH_VERSINFO}" - лейтенант 4] или ["$ {BASH_VERSINFO [0]}" - лейтенант 4]
добавлено автор bufh, источник
Проблема с этим методом - вы, не может быть на 100% уверено, что любой сценарий, символьная ссылка или любой другой вид портят конфигурацию, кто изменил любую переменную окружения в логине. Как я ответил ниже, Ctrl+x Ctrl+v покажет вам точно версию удара you' ре, в настоящее время бегущее, независимо от любой переменной окружения.
добавлено автор vegatripy, источник
It' s стоящий указания, что это скажет вам версию , которые колотят (расположенный в / bin/ удар на большинстве систем), который может отличаться, чем версия, которая, оказывается, бежит в некоторых, вызывают или сценарий. (Например, сценарий, начатый с #!/ usr/ local/ bin/ удар мог бы использовать различную версию). Другие методы (зарегистрированный в другие ответы) могут также быть полезными.
добавлено автор mkasberg, источник

Управляя ударом (например, из терминал гнома ) вы можете контрольное число BASH_VERSION переменная окружения.

$ echo $BASH_VERSION
4.2.37(1)-release

Если стоимость пуста, вы не бежите удар .

82
добавлено
Это лучше, чем просто бегущий удар - версия , потому что это подтверждает, что вы в настоящее время управляете ударом, не только, что у вас есть удар, установленный на вашей системе.
добавлено автор heltonbiker, источник
+1 удар - версия не показывает удар, который вы в настоящее время используете.
добавлено автор RKh, источник
Остерегайтесь: набор , BASH_VERSION не гарантирует, что вы бежите удар : экспортный BASH_VERSION; csh-c ' $BASH_VERSION$SHELL$shell' эха; , так $BASH_VERSION может быть установлен в csh также
добавлено автор Tino, источник
@Tino хорошо, вы могли сделать $SHELL - версия , но снова SHELL мог бы быть переписан (и вся раковина не поддерживают - флаг вариантов).
добавлено автор bufh, источник

Есть ключевой короткий путь, который приказывает текущей информации о раковине обнаруживаться:

Ctrl+x Ctrl+v

From man bash

   display-shell-version (C-x C-v)
          Display version information about the current instance of bash.

Это - лучший выбор, если вы связывались с переменными окружения.

31
добавлено

Нет, все в порядке. Из удар человека :

   --verbose
          Equivalent to  -v.

Это просто не столь тихо, как обычно. Попробовать

--version 

вместо этого.

8
добавлено

Обычное - версия может дать вам слишком много многострочного шаблона поэтому, что я использую,

bash -c 'echo $BASH_VERSION'
1
добавлено
@wjandrea Это отличается от Paweł Nadolski' s ответ. Это управляет командой в новом удар раковина. Одним путем это полезно, то, что это doesn' t, в настоящее время нужна раковина используясь быть удар . Другой - это, даже в удар , it' s возможный (хотя не хороший ), чтобы установить BASH_VERSION к различной стоимости. Это может даже быть экспортировано как переменная окружения. Все же даже после бегущий экспортируют BASH_VERSION=foobar , метод, данный здесь, работает, начиная с нового удар раковина перезагружает свое собственное BASH_VERSION автоматически прежде, чем выполнить расширение параметра, которое читает его.
добавлено автор scook, источник
@EliahKagan, в моем обновленном & модернизированном установил 16.04 систем LTS, установленных от 16.04.1 файлов ISO, удар - версия говорит 4.3.48 (1) - выпуск и , стратегический удар способного тайника говорит 4.3-14ubuntu1.2 , и я проверил, что исполняемый файл удар файл прибывает из пакета ' bash'. как это должно интерпретироваться? Есть подобное несоответствие для usb-creator-gtk , и в этом случае продукция способного тайника правильна. - Мы можем прийти к заключению, что число старшей версии - правильное (и кто-то забыл обновлять другой одного)?
добавлено автор sudodus, источник
Дубликат Pawel' s ответ
добавлено автор wjandrea, источник
Положительная сторона @EliahKagan, Спасибо!
добавлено автор wjandrea, источник

Только получить версию а не многострочный текст:

$ bash --version | head -1 | cut -d ' ' -f 4
0
добавлено
pro.bash
pro.bash
123 участник(ов)

All about Nix shells, signals, processes and development in general.