Sürümlerin biçimi - X.X.X.X.
Burada X - numarası.
İki sürümü karşılaştırmanın en iyi yolu nedir?Bazı ürünlerin sürümleri unix ksh kabuğunda nasıl karşılaştırılır?
compareVersions()
{
VER_1=$1
VER_2=$2
print -R "$VER_1"| IFS=. read v1_1 v1_2 v1_3 v1_4
print -R "$VER_2"| IFS=. read v2_1 v2_2 v2_3 v2_4
RESULT="0"
if [[ "${v1_1}" -lt "${v2_1}" ]]
then
RESULT="-1"
elif [[ "${v1_1}" -gt "${v2_1}" ]]
then
RESULT="1"
elif [[ "${v1_2}" -lt "${v2_2}" ]]
then
RESULT="-1"
elif [[ "${v1_2}" -gt "${v2_2}" ]]
then
RESULT="1"
elif [[ "${v1_3}" -lt "${v2_3}" ]]
then
RESULT="-1"
elif [[ "${v1_3}" -gt "${v2_3}" ]]
then
RESULT="1"
elif [[ "${v1_4}" -lt "${v2_4}" ]]
then
RESULT="-1"
elif [[ "${v1_4}" -gt "${v2_4}" ]]
then
RESULT="1"
fi
echo "$RESULT"
}
Ama bunu sevmiyorum - bu çok basittir:
kod aşağıdaki kullanın.
Belki sürümleri karşılaştırmak için doğru yol var mı?
Bunun Bash yerine ksh olmadığından emin misiniz? Bash 'print' komutuna sahip değildir ve' read' (okuma) 'ya giremezsiniz. –
Evet - bu ksh. Etiketlerimi sabitledim. –
"okuyabildiğini okuyamazsın" - tabi ki yapabilirsin. printf "abc \ n" | {okuma x; printf "$ x \ n var"; } ' –