我正在尝试测试是否支持Ubuntu版本,如果不支持,那么我在APT文件夹中更新source.list
我知道我不能使用<>在[[]]中,所以我试过[()],试过[],甚至试图在变量中使用正则表达式和“ – ”,但它不起作用,因为它找不到“file:76” .
我应该如何编写比较工作?
我的代码:
#!/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
像这样:
[[ $supportLeft -lt 1 || $yearCompare -gt 0 ]]
您可以在man test中找到这些和其他相关的运算符