Я пытаюсь проверить версию операционной системы OS X, если это 10,7 или выше. С другой стороны, если до 10.7 сделать что-то еще. Можете ли вы, ребята, указать мне в правильном направлении, почему я получаю сообщение об ошибке ниже?Помощник с оператором сравнения
спасибо!
#!/bin/sh
cutOffOS=10.7
osString=$(sw_vers -productVersion)
echo $osString
current=${osString:0:4}
echo $current
currentOS=$current
echo $currentOS
if [ $currentOS >= cutOffOS ] ; then
echo "10.8 or later"
chflags nohidden ~/Library
else
echo "oh well"
fi
Выход при запуске выше сценарий:
10.8.4
10,8
10,8
/Users/Tuan/Desktop/IDFMac.app/Contents/Resources/ сценарий: строка 11: [: 10.8: ожидаемый операционный оператор
oh well
Хорошо! Просто для любопытства: как насчет того, будет ли одна версия 3-мя цифрами, а другая только 2? – fedorqui
Хорошая точка; Я забыл объяснить это. В 'bash' вы можете использовать неопределенные переменные в' ((x> y)) ', и они будут обрабатываться как 0. Для оболочки POSIX вам нужно явно указать пустые переменные в 0. Я обновлю. – chepner