Visa obesvarade inlägg | Visa aktiva trådar Aktuellt datum och tid: 07 dec 2019, 20:19



Svara på tråd  [ 6 inlägg ] 
 Vilken dist man kör... 
Författare Meddelande
Användarvisningsbild

Blev medlem: 05 apr 2008, 23:09
Inlägg: 5324
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Vilken dist man kör...
Ibland har man behov av att ta reda på vilken dist man kör. Antingen för att man själv glömt av det, eller också för att man behöver veta det i ett script för att kunna köra det inom flera distar.

Det här lilla scriptet skriver antingen ut direkt vilken dist (inklusive version) man kör om man kör det rakt av. Om man vill kan man ändra lite längst upp i det och:

  • FULL - Om den är satt till "true" så skrivs allting ut. Om den däremot är satt till "false" så skrivs det enbart ut namnet på disten, t.ex "Ubuntu", "Mint", OpenSUSE" eller "CentOS" etc.
  • LOWER - Om den är satt till "true" så skrivs allt ut i lower-case (små bokstäver). Kan vara bra när man ska kontrollera det i script.

I övrigt är det bara att "tuta och köra"....

Kod:
#! /bin/bash
#
FULL=true
LOWER=false
#
if [[ -z $1 ]]; then
   ETC="/etc"
else
   ETC=$1
fi
source $ETC/os-release
if [[ $FULL == true ]]; then
   TMP=$(echo "$NAME $VERSION" | sed 's/Linux//g' | sed 's/  / /g' | xargs)
else
   TMP=$(echo "$NAME $VERSION" | sed 's/Linux//g' | awk '{ print $1 }')
fi
if [[ $LOWER == true ]]; then
   OUT=$(echo $TMP | tr '[:upper:]' '[:lower:]')
else
   OUT=$TMP
fi
echo $OUT


Testat och funkar i Ubuntu, Mint, RHEL, SUSE, CentOS, Fedora, SLED och SLES... :) :D ;D

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


26 jun 2019, 14:30
Profil WWW

Blev medlem: 17 jan 2007, 07:20
Inlägg: 301
OS: Debian
Utgåva: Vet inte/ingen utgåva passar
Svara med citat
Inlägg Re: Vilken dist man kör...
Snyggt!

Dock kan den behöva lite polering när man kör FULL=true på en Debian 10-maskin - ditt skript ger:
Kod:
Debian GNU/ 10 (buster)


cat /etc/os-release har följande info:
Kod:
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

_________________
Hade tidigare nicket "Cowboy".


26 jun 2019, 14:48
Profil
Användarvisningsbild

Blev medlem: 05 apr 2008, 23:09
Inlägg: 5324
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Vilken dist man kör...
Aha... ;) ;)

Jo jag polerar ju bort just ordet "Linux", just för att det inte innehåller så mycket information om vilken dist man kör. Och i Mint hamnar det först "Linux Mint", i CentOS och lite annat så hamnar det lite senare...

Och för att kunna få ut just vilken dist det handlar om så måste jag strippa bort det...

Fast i Debian funkar det alltså också, förutom att det skriver ut "GNU/" där det borde skriva ut "GNU".

Men du får väl "Debian" om du inte kör med FULL... :)

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


26 jun 2019, 14:59
Profil WWW
Användarvisningsbild

Blev medlem: 05 apr 2008, 23:09
Inlägg: 5324
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Vilken dist man kör...
Det går ju förstås att ändra så att den inte strippar bort "Linux" när man kör med FULL, som här:
Kod:
#! /bin/bash
#
FULL=true
LOWER=false
#
if [[ -z $1 ]]; then
   ETC="/etc"
else
   ETC=$1
fi
source $ETC/os-release
if [[ $FULL == true ]]; then
   TMP=$(echo "$NAME $VERSION" | xargs)
else
   TMP=$(echo "$NAME $VERSION" | sed 's/Linux//g' | awk '{ print $1 }')
fi
if [[ $LOWER == true ]]; then
   OUT=$(echo $TMP | tr '[:upper:]' '[:lower:]')
else
   OUT=$TMP
fi
echo $OUT


Kanske en god idé.... :D

Tanken från början var ju bara att jag skulle kunna använda det i olika script för att kunna köra dem i både Ubuntu, SUSE och RHEL. Men sedan kom jag ju på att det vore ett rätt trevligt script att ha ändå, ihop med "uname" och allt annat... :)

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


26 jun 2019, 15:09
Profil WWW
Användarvisningsbild

Blev medlem: 05 apr 2008, 23:09
Inlägg: 5324
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg Re: Vilken dist man kör...
Notera också att scriptet går att köra mot ett "sidomonterat" system, t.ex om du har monterat något annat (kraschat eller så) på /mnt så kan du ange "/mnt/etc" som parameter... :)

[Edit] Det går att boota upp från en USB-pinne, sidomontera ett annat/krashat system och snabbt få reda på vad det är.... ;)

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


26 jun 2019, 15:14
Profil WWW
Användarvisningsbild

Blev medlem: 25 jan 2007, 03:15
Inlägg: 16467
Ort: $HOME
OS: Gentoo
Svara med citat
Inlägg Re: Vilken dist man kör...
Här är ett annat alternativ som kräver lite mindre kod. :)

Kod:
#!/bin/bash
var="cat /etc/*-release | grep -w"
case $1 in
    id)
        $var "ID" | sed 's/ID=//'
        ;;
    name)
        $var "NAME" | sed 's/NAME=//'
        ;;
    pretty)
        $var "PRETTY_NAME" | sed 's/PRETTY_NAME=//;s/"//g;s/\// /'
        ;;
esac


Kod:
$ distro.sh id
gentoo
$ distro.sh name
Gentoo
$ distro.sh pretty
Gentoo Linux


Om man bara vill ta reda på IDt för att ha det i ett script kan man använda denna rad som sätter variabeln `$distro`:

Kod:
distro=$(cat /etc/*-release | grep -w "ID" | sed 's/ID=//')

_________________
$_ Linuxkompis.se


04 jul 2019, 10:29
Profil WWW
Visa inlägg nyare än:  Sortera efter  
Svara på tråd   [ 6 inlägg ] 

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 0 gäster


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
Main Engineer for phpBB3: Bertie at phpBB.com © 2000 - 2002, 2005 - 2007, the Group behind the Open Source code of phpBB.
Designed by STSoftware, modified by Katt, Konservburk & Peetra. Swedish translation by Peetra & phpBB Sweden © 2006-2011