Ich habe versucht, die Bash-Version zu überprüfen, also habe ich getippt /bin/bash -v
.
Dadurch wurde eine ganze Menge Text auf den Bildschirm ausgegeben (Inhalt von .bashrc und andere Dateien, die daraus stammen).
Könnte ich aufgrund dieses Befehls etwas vermasselt haben (wie das Überschreiben einiger Konfigurationsdateien / das Setzen falscher Umgebungsvariablen usw.)?
Ich kann auch keine Dokumentation darüber finden, wofür der -v
Switch gedacht ist.
command-line
bash
Zabba
quelle
quelle
bash -v
Sie eine neue Bash-Shell mit aktiviertem Verbose-Modus aufgerufen, sodass Sie eine ausführliche Ausgabe für weitere Befehle erhalten (zumindest wird dies angezeigtprintf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"
). Um die Ausführlichkeit zu beenden, geben Sieexit
command ein - Sie befinden sich wieder in der ursprünglichen nicht ausführlichen Bash-Shell (oder in der Shell, in der Sie sich befanden).Antworten:
Der
-v
Parameter für bash steht für verbose und weist bash an, so viele Informationen wie möglich zu drucken. Beim Start wird die gesamte eingelesene Konfiguration ausgedruckt.Verwenden Sie, um die Versionsinformationen für bash auszudrucken
bash --version
.quelle
echo "$BASH_VERSION"
. Es gibt auch ein spezielles Array (BASH_VERSINFO), das jede Versionsnummer in separaten Elementen enthält.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 ]
oder sein[ "${BASH_VERSINFO[0]}" -lt 4 ]
Wenn Sie bash ausführen (z. B. from
gnome-terminal
), können Sie den Wert derBASH_VERSION
Umgebungsvariablen überprüfen .Wenn der Wert leer ist, werden Sie nicht ausgeführt
bash
.quelle
bash --version
, da es bestätigt, dass Sie derzeit Bash ausführen, und nicht nur, dass Sie Bash auf Ihrem System installiert haben.bash --version
zeigt nicht die Bash, die Sie gerade verwenden.BASH_VERSION
stellt nicht sicher , dass Sie ausgeführt werdenbash
:export BASH_VERSION; csh -c 'echo $BASH_VERSION $SHELL $shell'
so$BASH_VERSION
kann eingestellt werden ,csh
wie auch$SHELL --version
, aber SHELL könnte wieder überschrieben werden (und alle Shells unterstützen das Flag --version nicht).Es gibt eine Tastenkombination, mit der aktuelle Shell-Informationen angezeigt werden:
Ctrl+ x Ctrl+v
Von
man bash
Dies ist die beste Wahl, wenn Sie mit Umgebungsvariablen herumgespielt haben.
quelle
Nein, alles ist in Ordnung. Von
man bash
:Es ist einfach nicht so still wie sonst. Versuchen
stattdessen.
quelle
Das übliche
--version
kann Ihnen zu viel mehrzeiliges Boilerplate geben, also was ich benutze, istquelle
bash
Shell ausgeführt. Eine Möglichkeit ist, dass die aktuell verwendete Shell nicht benötigt wirdbash
. Ein weiterer Grund ist, dass es sogar inbash
möglich (wenn auch nicht gut ) istBASH_VERSION
, einen anderen Wert festzulegen. Es kann sogar als Umgebungsvariable exportiert werden. Dieexport BASH_VERSION=foobar
hier angegebene Methode funktioniert auch nach dem Ausführen , da die neuebash
ShellBASH_VERSION
automatisch zurückgesetzt wird, bevor die Parametererweiterung ausgeführt wird, die sie liest.bash --version
sagt4.3.48(1)-release
undapt-cache policy bash
sagt,4.3-14ubuntu1.2
und ich habe geprüft, ob die ausführbarebash
Datei aus dem Paket 'bash' stammt. Wie ist das zu interpretieren? Es gibt eine ähnliche Diskrepanz fürusb-creator-gtk
, und in diesem Fall ist die apt-cache Ausgabe korrekt ist . - Können wir daraus schließen, dass die höhere Versionsnummer die richtige ist (und jemand vergessen hat, die andere zu aktualisieren)?4.3.48...
ist die Version von Bash,4.3-14...
ist die Version desbash
Pakets.So erhalten Sie nur die Version und nicht den mehrzeiligen Text:
quelle