Я пытаюсь написать функцию для сравнения версий продуктов.Сравнение версий с использованием KSH
мои версии могут быть XX.XX.XX или xx-xx-xx либо разделены «.». или «-» и количество полей может быть различным либо xx.xx или xx.xx.xx или xx.xx.xx.xx
версий, которые им будут сравнить будет идентичны в разделителях и с полями
#!/bin/ksh
set -x
compareVersions()
{
typeset IFS='.'
typeset -a v1=($1)
typeset -a v2=($2)
typeset n diff
for ((n=0; n<4; n+=1)); do
diff=$((v1[n]-v2[n]))
if [ $diff -ne 0 ] ; then
[ $diff -le 0 ] && echo '-1' || echo '1'
return
fi
done
echo '0'
} # ---------- end of function compareVersions ----------
#compareVersions "6100-09-03" "6100-09-02"
compareVersions "6100.09.03" "6100.09.02"
Пожалуйста, проверьте и дать мне предложения
Я попытался с ниже вещью, которую я получил другую должность .. но нет удачи .. надеется, что если какое-то изменение должно быть сделано. Я должен использовать разные платформы (linux, solaris, AIX), поэтому я предпочел KSH, но у меня есть идея только в сценариях оболочки.
спасибо много .. Это работает для меня ... – clement
Если это работает, то вы можете подумать о том, чтобы щелкнуть «принять ответ» -что там. –