【发布时间】:2013-12-08 11:25:04
【问题描述】:
要查找用户正在运行的 OS X 的当前版本,SystemVersion.plist 文件将显示此内容。如何使用grep 命令仅查找版本号并返回它?
例如:
cat /System/Library/CoreServices/SystemVersion.plist
将产生:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ProductBuildVersion</key>
<string>13A598</string>
<key>ProductCopyright</key>
<string>1983-2013 Apple Inc.</string>
<key>ProductName</key>
<string>Mac OS X</string>
<key>ProductUserVisibleVersion</key>
<string>10.9</string>
<key>ProductVersion</key>
<string>10.9</string>
</dict>
</plist>
所以,在适当的时候我会运行:
cat /System/Library/CoreServices/SystemVersion.plist | grep 10.9
这会返回:
<string>10.9</string>
<string>10.9</string>
第二个<string>10.9</string> 来自<key>ProductUserVisibleVersion</key> 键。我将如何操作 grep 命令以便它搜索并 ONLY 从这里返回 10.9 only?我知道我在示例中使用了grep 来专门查找10.9 响应,但我想显示<string> 和</string> 之间出现的任何内容。
我将把它合并到一个测试中,希望返回 visible OS X 版本并使用 if / else 命令检查它,然后相应地运行调用函数.
我对@987654331@ 脚本解决方案持开放态度,因为我也可以将其实施到其他选项中。 AppleScript 作为替代解决方案也很值得了解。
【问题讨论】:
-
@DigiMonk 我结合使用 AppleScript 和 bash 来完成某些任务。 Bash 是我主要追求的,我首先用“bash”和“grep”标记了这个问题,后来我添加了“AppleScript”。
标签: string macos bash grep applescript