Мне нужно использовать версию приложения в сценарии .sh на Mac osX 10.10, чтобы я мог сравнить с другим номером, чтобы я мог заставить обновление или нет.Как вернуть версию приложения в терминале osx
До сих пор я это (я использую Firefox.app в качестве примера)
FirefoxmdlsVersion= mdls -name kMDItemVersion /Applications/Firefox.app;
echo $FirefoxmdlsVersion
Это возвращает kMDItemVersion = "34.0"
, который является шагом в правильном направлении, но мне нужно только номер, так что я могу сделать мой сравнить пример 340
Вот что я пытался сделать с новой переменной, но я не получаю сообщение об ошибке или вывода на всех
FFV2=${FirefoxmdlsVersion//'kMDItemVersion ='}
FFV3=${FirefoxmdlsVersion:18:4}
I возможно, здесь, в неправильном направлении, но я смотрел сообщение, и хавент сделал какой-то прогресс. Может кто-нибудь мне помочь?
Вместо использования 'tr' вы можете использовать флаг' -raw': 'FirefoxmdlsVersion = mdls -raw -name kMDItemVersion/Applications/Firefox.app'. – icecream
@icecream - OP хотел удалить '.' И '-raw', не делает этого. Однако '-raw' удаляет все остальное, кроме числа с точками (даже в новой строке), поэтому как' -raw', так и 'tr' производят только цифры, если это то, что требуется. – CRD
Это решение требует, чтобы приложение было проиндексировано прожектором MacOSX. –