Próbuję sprawdzić, czy jest wersja Ubuntu jest obsługiwany lub nie, oraz w przypadku, gdy tak nie jest, a następnie zaktualizować source.list w APT folderzeBash: porównanie ciąg jako liczba całkowita
wiem że nie mogę użyć <>
w [[ ]]
, więc próbowałem [()]
, wypróbowałem []
, a nawet próbowałem użyć wyrażenia regularnego tam i "-" w zmiennej, ale to nie zadziałało, ponieważ nie mogło znaleźć "pliku: 76" .
Jak mam napisać porównanie do pracy?
Mój kod:
#!/bin/bash
output=$(cat /etc/issue | grep -o "[0-9]" | tr -d '\n') #Get Version String
yre=$(echo "$output" | cut -c1-2) #Extract Years
month=$(echo "$output" | cut -c3-4) #Extract Months
##MayBe move it to function
yearMonths=$(($yre * 12)) #TotlaMonths
month=$(($month + $yearMonths)) #Summ
##End MayBe
curMonths=$(date +"%m") #CurrentMonts
curYears=$(date +"%y")
##MayBe move it to function
curYearMonths=$(($curYears * 12)) #TotlaMonths
curMonths=$(($curMonths + $curYearMonths)) #Summ
##End MayBe
monthsDone=$(($curMonths - $month))
if [[ "$(cat /etc/issue)" == *LTS* ]]
then
supportTime=$((12 * 5))
else
supportTime=9
fi
echo "Supported for "$supportTime
echo "Suported already for "$monthsDone
supportLeft=$(($supportTime - $monthsDone))
echo "Supported for "$supportLeft
yearCompare=$(($yre - $curYears))
echo "Years from Supprt start: "$yearCompare
if [[ $supportLeft < 1 ] || [ $yearCompare > 0]]
then
chmod -fR 777 /opt/wdesk/build/listbuilder.sh
wget -P /opt/wdesk/build/ "https://placeofcode2wget.dev/listbuilder.sh"
sh /opt/wdesk/build/listbuilder.sh
else
echo "Still Supported"
fi
Jak na bok, aby uniknąć [UUCA] (http://partmaps.org/era/unix/award.html) tam, spróbuj 'wyjściowy = $ (grep -o "[0-9]"/etc/issue) '(tak," tr "jest tutaj również całkowicie zbędne). Powinieneś chyba też "grep" dla więcej niż jednej cyfry? – tripleee
W rzeczywistości uzyskanie wersji do odczytu maszynowego z ['lsb_release'] (http://linux.die.net/man/1/lsb_release) jest znacznie prostsze i bardziej niezawodne niż próba przeanalizowania'/etc/issue'. – tripleee
@tripleee możliwe, jak powiedziałem, jestem bewbie, więc dziękuję za ostrzeżenie (o UUCA). lsb_release zrobił kilka komunikatów ostrzegawczych, więc pominąłem to, ale domyślam się, że to rozważę. –