(nauka bash) Próbowałem sprawdzić wersję bash, więc napisałem /bin/bash -v
.
To spowodowało wyświetlenie dużej ilości tekstu na ekranie (zawartość .bashrc i innych pochodzących z niego plików).
Czy mogłem coś zepsuć (np. Zastąpić niektóre pliki konfiguracyjne / ustawić nieprawidłowe zmienne środowiskowe itp.) Z powodu tego polecenia?
Nie mogę również znaleźć dokumentacji dotyczącej tego, do czego -v
służy przełącznik.
command-line
bash
Zabba
źródło
źródło
bash -v
, wywołałeś nową powłokę bash z aktywnym trybem szczegółowym, więc zobaczysz pełne wyjście dla dalszych poleceń (przynajmniej zobaczyszprintf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"
). Aby zakończyć gadatliwość, wpiszexit
polecenie - wrócisz do oryginalnej nie-gadatliwej powłoki bash (lub innej powłoki, w której byłeś).Odpowiedzi:
-v
Parametr dla bash oznacza rozwlekły i instruuje bash wydrukować jak najwięcej informacji o tym, co robi. Po uruchomieniu wydrukuje całą konfigurację, w której czyta.Aby wydrukować informacje o wersji dla bash, użyj
bash --version
.źródło
echo "$BASH_VERSION"
. Istnieje również specjalna tablica (BASH_VERSINFO) zawierająca każdy numer wersji w osobnych elementach.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 ]
lub[ "${BASH_VERSINFO[0]}" -lt 4 ]
Podczas uruchamiania bash (np. Z
gnome-terminal
) możesz sprawdzić wartośćBASH_VERSION
zmiennej środowiskowej.Jeśli wartość jest pusta, nie jesteś uruchomiony
bash
.źródło
bash --version
, ponieważ potwierdza, że aktualnie uruchomisz bash, a nie tylko to, że masz zainstalowany bash w swoim systemie.bash --version
nie pokazuje aktualnie używanego basha.BASH_VERSION
nie gwarantuje, że używaszbash
:export BASH_VERSION; csh -c 'echo $BASH_VERSION $SHELL $shell'
, więc$BASH_VERSION
mogą być ustawione wcsh
tak dobrze$SHELL --version
, ale znowu SHELL może zostać nadpisany (i wszystkie powłoki nie obsługują flagi --version).Istnieje skrót klawiszowy, który wyświetla aktualne informacje o powłoce:
Ctrl+ x Ctrl+v
Od
man bash
To najlepszy wybór, jeśli pomieszałeś ze zmiennymi środowiskowymi.
źródło
Nie, wszystko jest w porządku. Od
man bash
:Po prostu nie jest tak cicho jak zwykle. Próbować
zamiast.
źródło
Zwykle
--version
może dać ci zbyt wiele wielowierszowych płyt kotłowych, więc używam tegoźródło
bash
powłoce. Jednym ze sposobów jest to użyteczne, ponieważ nie potrzebuje obecnie używanej powłokibash
. Innym jest to, że nawet wbash
, możliwe jest (choć nie dobre ) ustawienieBASH_VERSION
innej wartości. Może być nawet eksportowany jako zmienna środowiskowa. Jednak nawet po uruchomieniuexport BASH_VERSION=foobar
podana tutaj metoda działa, ponieważ nowabash
powłoka resetuje sięBASH_VERSION
automatycznie przed wykonaniem interpretacji parametru, który ją odczytuje.bash --version
mówi4.3.48(1)-release
iapt-cache policy bash
mówi,4.3-14ubuntu1.2
i sprawdziłem, czybash
plik wykonywalny pochodzi z pakietu „bash”. Jak należy to interpretować? Występuje podobne niedopasowanieusb-creator-gtk
, w takim przypadku dane wyjściowe apt-cache są poprawne. - Czy możemy stwierdzić, że wyższy numer wersji jest prawidłowy (i ktoś zapomniał zaktualizować drugi)?4.3.48...
jest wersją Bash,4.3-14...
jest wersjąbash
pakietu.Aby uzyskać tylko wersję, a nie tekst wielowierszowy:
źródło