Ich schreibe ein Bash-Skript für Mac OS X Lion 10.7 und ich würde gerne wissen, wie ich die Version des Betriebssystems in bash überprüfen kann und ob die Version erlaubt ist sagen 10.7.1 dann macht es einen Befehl und fährt mit dem Skript fort und macht dasselbe für eine andere Version, sagen wir 10.7.3, dann macht es einen anderen Befehl als der Befehl, der für 10.7.1 verwendet wurde?Überprüfen Sie die Version von OS und geben Sie dann einen Befehl aus, wenn die korrekte Version
5
A
Antwort
4
Sie möchten den Befehl sw_vers
unter OS X. Es druckt einige lesbare Zeichenfolgen, einschließlich der Systemversion 10.X.X (sw_vers -productVersion
). Sie können auch uname
verwenden, um die Kernel-Version zu überprüfen. Wenn Ihr Skript jemals auf andere Unix-Varianten portiert wurde, wird uname
dort funktionieren.
5
OS_Version (full ... Beispiel 10.7.3)
system_profiler SPSoftwareDataType | grep "System Version" | awk '{print $6}'
ODER
sw_vers -productVersion
OS (kurz ... Beispiel 10,7)
system_profiler SPSoftwareDataType | grep "System Version" | awk '{print $6}' | sed "s:.[[:digit:]]*.$::g"
OR
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
Wenn Sie nur die wichtigsten OS-Version überprüfen müssen, halten Sie die Darwin-Version entspricht es im Geist und in bash auf eine Shell-Variable festgelegt ist, ist einfach zu einer numerisch vergleichbaren Ganzzahl zwingen.
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
danke. Probier das mal aus –