Как лучше всего взять строку, такую как:
100.200.300.400
И удалите ".200.300." часть строки, выходящая из "100400".?
ОБНОВЛЕНИЕ: добавление некоторого дополнительного контекста. :) Мы используем Jamf Pro для исправления приложений в macOS. Мы используем атрибуты расширений (EAs), чтобы определить, находится ли компьютер в желаемом состоянии (имеет версию, которую мы развертываем или позже). В настоящее время мы используем несколько советников, что не очень эффективно. Используя Adobe Flash Player в качестве примера, версия всегда имеет формат NN.0.0.NNN. Если мы удалим ".0.0." из строки версии у нас может быть целое число для выполнения анализа "-ge". В результате мы узнаем, находится ли компьютер в желаемом состоянии (приложение имеет желаемую версию или более позднюю версию), или не находится в желаемом состоянии (требует обновления), или не установлен (ничего не делать). Вот пример скрипта, который я использовал, используя вход от вас, ребята:
#!/bin/sh
plistFile="/Library/Internet Plug-Ins/Flash Player.plugin/Contents/version.plist"
versionString=$( defaults read "$plistFile" CFBundleShortVersionString )
currentState=$( echo "${versionString}" | sed 's/\..*\.//' )
desiredState="32114"
if [ -e "$plistFile" ]
then
if [[ "${currentInteger}" -ge "${desiredInteger}" ]]
then
echo "<result>DesiredState</result>"
else
echo "<result>NeedsUpdate</result>"
fi
else
echo "<result>NotInstalled</result>"
fi
exit 0