실행중인 bash 버전을 어떻게 찾습니까?


161

(bash 배우기) 나는 bash 버전을 확인하려고 했으므로 입력했습니다 /bin/bash -v.

화면에 많은 양의 텍스트가 출력되었습니다 (.bashrc 및 기타 소스 파일의 내용).

해당 명령으로 인해 일부 구성 파일을 덮어 쓰거나 잘못된 환경 변수를 설정하는 등의 문제를 해결할 수 있습니까?

또한 -v스위치의 용도에 대한 설명서를 찾을 수 없습니다 .


당신이 실행 bash -v하면 verbose 모드가 활성화 된 새로운 bash 쉘을 호출 했으므로 추가 명령에 대한 자세한 출력이 표시됩니다 (최소한 printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"). 자세한 내용을 끝내려면 exitcommand를 입력하십시오 -원래의 자세한 장황하지 않은 bash 쉘 (또는 어떤 쉘이든)로 돌아갑니다.
ADTC

답변:


165

-vbash 의 매개 변수는 verbose를 나타내며 bash가 수행중인 작업에 대해 가능한 많은 정보를 인쇄하도록 지시합니다. 시작할 때 읽고있는 모든 구성을 인쇄합니다.

bash의 버전 정보를 인쇄하려면을 사용하십시오 bash --version.


큰! 또한 bash 스위치 목록을 찾았습니다 .
Zabba

33
또는 이미 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
geirha

2
오타는 같은해야 [ "${BASH_VERSINFO}" -lt 4 ]또는[ "${BASH_VERSINFO[0]}" -lt 4 ]
bufh


이 방법의 문제점은 로그인 할 때 환경 변수를 변경 한 스크립트, 기호 링크 또는 기타 종류의 엉망 구성을 100 % 확신 할 수 없다는 것입니다. 아래에서 대답했듯이 Ctrl + x Ctrl + v는 환경 변수에 관계없이 현재 실행중인 bash 버전을 정확하게 보여줍니다.
vegatripy

98

bash를 실행할 때 (예 :에서 gnome-terminal) BASH_VERSION환경 변수의 값을 확인할 수 있습니다 .

$ echo $BASH_VERSION
4.2.37(1)-release

값이 비어 있으면 실행 중이 아닙니다 bash.


11
이것은 bash --version시스템에 bash가 설치되어있는 것이 아니라 현재 bash를 실행하고 있음을 확인하기 때문에 단순히 running보다 낫습니다 .
Flimm

1
+1 bash --version은 현재 사용중인 배쉬를 표시하지 않습니다.
gabeio

주의 : 세트가 BASH_VERSION실행되는 것을 보장하지 않습니다 bash: export BASH_VERSION; csh -c 'echo $BASH_VERSION $SHELL $shell'그래서 $BASH_VERSION설정 될 수있다 csh뿐만 아니라
티노

@Tino 잘, 당신은 할 수 $SHELL --version있지만 다시 SHELL을 덮어 쓸 수 있습니다 (그리고 모든 쉘은 --version 플래그를 지원하지 않습니다).
bufh

37

현재 쉘 정보를 표시하는 주요 단축키가 있습니다.

Ctrl+ x Ctrl+v

에서 man bash

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

환경 변수가 엉망이라면 이것이 최선의 선택입니다.


8

아니요, 모든 것이 괜찮습니다. 보낸 사람 man bash:

   --verbose
          Equivalent to  -v.

평소처럼 조용하지는 않습니다. 시험

--version 

대신에.


1

보통 --version은 너무 많은 멀티 라인 상용구를 줄 수 있으므로 사용중인 것은

bash -c 'echo $BASH_VERSION'


4
@wjandrea 이것은 Paweł Nadolski의 답변 과 다릅니다 . 새 bash쉘 에서 명령을 실행합니다 . 이것이 유용한 한 가지 방법은 현재 사용되는 쉘이 필요하지 않다는 것 bash입니다. 또 다른도에,이다 bash, 그것이 가능 (그러나 아니다 좋은 설정) BASH_VERSION다른 값으로. 환경 변수로 내보낼 수도 있습니다. 그러나을 실행 한 후에도 export BASH_VERSION=foobar여기에 제공된 방법이 작동합니다. 새로운 bashBASH_VERSION은이를 읽는 매개 변수 확장을 수행하기 전에 자체 쉘을 자동으로 재설정 하기 때문입니다.
Eliah Kagan

@EliahKagan는 업데이트 및 업그레이드 내에서 16.04.1 ISO 파일에서 설치 16.04 LTS 시스템을 설치 bash --version라고 4.3.48(1)-release하고 apt-cache policy bash말한다 4.3-14ubuntu1.2나는 실행 것을 확인 한 bash파일은 패키지 '배쉬'에서 비롯됩니다. 이것을 어떻게 해석해야합니까? 와 유사한 불일치 usb-creator-gtk가 있으며이 경우 apt-cache 출력이 정확합니다. -더 높은 버전 번호가 올바른 번호라고 결론 내릴 수 있습니까?
sudodus

1
@sudodus 프로그램의 버전 번호는 제공되는 APT 패키지의 버전 번호와 다를 수 있습니다. 이것이 여러분이보고있는 것입니다. 4.3.48...Bash 4.3-14...의 버전이고 bash패키지 의 버전입니다 .
wjandrea

@EliahKagan 나는 전에 언급하는 것을 잊어 버렸습니다. 나는 지식을 주셔서 감사합니다.
wjandrea

0

여러 줄 문자가 아닌 버전 만 가져 오려면 :

$ bash --version | head -1 | cut -d ' ' -f 4
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.