Próbuję więc utworzyć bash / plik wykonywalny i muszę znać numer wersji Ubuntu w systemie. Wszystkie sposoby, które znalazłem online, obejmują lsb_release -r
, ale nie mogę wyprowadzić tego do zmiennej.
Czy jest jakiś sposób na pobranie aktualnej wersji Ubuntu i zapisanie jej jako zmiennej w pliku wykonywalnym powłoki?
command-line
bash
scripts
a.mosallaei
źródło
źródło
Odpowiedzi:
Powinien załatwić sprawę.
Dodaj tylko część liczbową:
Plik
lsb-release
zmiennych/usr/bin/lsb_release
to skrypt w języku Python. Jest to krótki skrypt, który stanowi dobre wprowadzenie do języka python. Jak wspomnieli inni, istnieje krótszy sposób uzyskania tylko numeru wersjilsb_release -sr
./etc/lsb-release
Plik definiuje zmienne środowiskowe z tej samej informacji dostarczonych przezlsb_release -a
komendę:Możesz dołączyć te zmienne środowiskowe w dowolnym momencie, używając
. /etc/lsb-release
. Aby przetestować w swoim terminalu:źródło
Release: 18.04
. Czy istnieje jednak sposób na uzyskanie numeru? Chcę móc używać tej zmiennej w funkcji if / else w skrypcie. Celem if / else jest pobranie poprawnej wersji mojej aplikacji dla dystrybucji ubuntu.Alternatywą jest użycie
/etc/os-release
pliku. Jest to sformatowane jako lista zmiennych powłoki:Tak więc łatwym sposobem analizowania jest po prostu
source
plik:Aby uniknąć niepotrzebnego ustawiania wszystkich tych zmiennych, możesz pobrać plik w podpowłoce , powtórzyć potrzebną zmienną i wyjść z podpowłoki:
Alternatywnie, zawsze możesz po prostu parsować plik bezpośrednio:
źródło
lsb_release
Komenda obsługuje-s
(lub--short
) opcję drukowania tylko informacje można poprosić i nie nagłówek, który mówi, jaki rodzaj informacji, że jest.Aby uzyskać tylko numer wersji, wystarczy uruchomić:
Na przykład w systemie Ubuntu 18.04 LTS, który wyświetla:
Podobnie jak w przypadku metody zawartej w odpowiedzi WinEunuuchs2Unix , nadal uzasadnione jest użycie substytucji poleceń w celu przypisania tego wyniku do zmiennej powłoki. Załóżmy, że chcesz, aby
ver
zmienna zawierała numer wydania:Ze
-s
nie ma potrzeby analizowania na numer zcut
,sed
,grep
,awk
, bardziej złożonych form interpretacji parametrów , lub tym podobne.W tym zastosowaniu
"
"
cytaty są opcjonalne, ale ogólnie sugeruję cytowanie rozszerzenia parametrów i innych rozszerzeń powłoki, z wyjątkiem przypadków, gdy istnieje powód, aby tego nie robić.źródło
Krótkie i proste
lsb_release
polecenia.Aby wydrukować tylko wersję
Wynik:
Aby wydrukować opis
Wynik:
O używanych tutaj flagach:
źródło