嘗試處理10.12.3的結果 - 當操作系統具有可選的第三數字值時,我將如何對此進行編碼?當然,這經常變化,所以我不想尋找擴展更新。只是主操作系統10.12,10.11,10.10等僅匹配主版本號和次版本號的macOS版本號
if [ "$osv" = "10.12" ];
then
appi="Applications:App Store.app:Contents:Resources:AppIcon.icns"
elif [ "$osv" = "10.11" ];
then
appi="Applications:App Store.app:Contents:Resources:appStore.icns"
else
exit
fi
謝謝。
@JamesDean'awk'需要的'$ osv'內容作爲它的輸入,將其分解成(用'-F'指定的分隔符)字段,然後僅打印頭兩個加入了與所指定的輸出字段分隔符與'OFS'。然後使用'$(...)'語法將該輸出保存到變量'v'中... – ewcz
@JamesDean或者你可以將這個方法與'sw_vers'結合起來,並直接獲得major.minor版本爲'v = $(sw_vers -productVersion | awk -F。'BEGIN {OFS =「。」} {print $ 1,$ 2}')' – ewcz
如果版本號已經在shell變量中,這有點笨重,但如果你無論如何都調用'sw_vers -productVersion',這是一個可行的方法,儘管'sw_vers -productVersion |切-d。 -f1-2'更簡單。(作爲一個潛在的有趣的一面:awk的'-F'選項通常期望_regex_,但通過'.'是一個異常,被視爲_literally_ - 也許是因爲任何字符的分割都沒有意義(你' d只能得到空字段)。) – mklement0