piszę skrypt bash dla Mac OS X Lion 10.7 i chciałbym wiedzieć, jak mogę sprawdzić wersję systemu operacyjnego w bashu i czy wersja jest dozwolona powiedzmy 10.7.1, a następnie wykonuje polecenie i kontynuuje działanie skryptu i robi to samo dla innej wersji, powiedzmy 10.7.3, a następnie wykonuje inne polecenie niż polecenie, które zostało użyte dla 10.7.1?Sprawdź wersję systemu operacyjnego, a następnie wydaj polecenie, jeśli poprawna wersja
5
A
Odpowiedz
4
Potrzebujesz komendy sw_vers
w systemie OS X. Drukuje niektóre odczytywalne przez człowieka łańcuchy, w tym wersję systemu 10.X.X (sw_vers -productVersion
). Możesz także użyć uname
, aby sprawdzić wersję jądra; jeśli twój skrypt jest kiedykolwiek przeniesiony do innych wersji Uniksa, będzie tam działać uname
.
5
OS_Version (pełna ... Przykład 10.7.3)
system_profiler SPSoftwareDataType | grep "System Version" | awk '{print $6}'
LUB
sw_vers -productVersion
OS (krótka ... przykład 10,7)
system_profiler SPSoftwareDataType | grep "System Version" | awk '{print $6}' | sed "s:.[[:digit:]]*.$::g"
LUB
OS_Version=$(OS (short… example 10.7) | sed "s:.[[:digit:]]*)
bash:
#!/bin/bash
# Use one of the examples given above to create the OS_Version variable
if [[ ${OS_Version} == 10.7.3 ]]; then
echo "Operating System is a match... will continue on."
else
echo "Operating System is NOT a match... will NOT continue."
fi
1
Jeśli trzeba tylko sprawdzić główną wersję systemu operacyjnego, należy pamiętać, że wersja Darwin odpowiada jej, w ciągu bash jest ustawiona zmienna powłoki, która jest łatwa zmuszać do porównywalnej liczbowo liczby całkowitej.
if [[ ${OSTYPE:6} -ge 13 ]]; then
echo "At least 10.9, so feeling fine.";
else
echo "Time to put the old cat to sleep.";
fi
dzięki. źle wypróbuję to –