的system_profilerMac OS中10.5命令用于显示相关联的USB驱动器安装的卷的路径.然而,在10.4中,它们没有显示.关于如何在10.4中获取USB驱动器的安装位置的任何想法?
有谁知道从终端确定或收集此信息的任何可能方法(以便在 bash shell 脚本中使用)?
在我的 Macbook Air 上,我可以通过 GUI 转到“关于本机”>“显示器”,它告诉我:内置显示器,13 英寸 (1440 x 900)
我可以从 system_profiler 命令获得屏幕分辨率,但不能获得“13 英寸”位。我也试过 ioreg 没有成功。根据分辨率计算屏幕尺寸是不准确的,因为这可以由用户更改。
有没有人设法实现这一目标?
我的问题就像来自http://my.safaribooksonline.com/0596007973/pythoncook2-CHP-10-SECT-17的模拟问题 ,最终使用2005年的过时xpath方法进入Python Cookbook,第2版无法使用10.6的内置python(也没有安装旧的软件包)
我希望..."检索有关Mac OS X系统的详细信息",使用system_profiler在每次计算机启动时在脚本中对其进行汇总(脚本将在登录时启动).
我收集的信息从SW版本到HW配置各不相同.
示例行是system_profiler SPSoftwareDataType | grep'Boot Volume',它返回启动卷名.我打了15到20个其他的信息电话.
我试图输出完整的'system_profiler>数据'并使用cat数据解析它 grep,但是如果我像上面的例子一样运行每一行,这显然效率低下.
如果输入文件和cat |,则为18秒 grep的.
如果打个人电话,则需要13秒
*我正试图尽可能快地完成它.
我推断我可能需要创建一个字典并使用键来引用数据,但我想知道解析和检索数据的最有效方法是什么?我在其他地方看到过使用system_profiler输出到XML并使用XML解析器的建议,但我认为可能有一些缓存和解析方法比首先输出到文件更有效.
尝试从系统分析器中读取一些信息。为此,我使用 NSTask 运行一些终端行命令。如果我运行一些输出不太大的命令,就没有问题。(例如:SPInstallHistoryDataType)但是如果我运行“SPApplicationsDataType”命令来收集已安装的应用程序列表,NSTask 等待太多而没有任何结果和任何错误。
所以我开始认为应该有一个缓冲区大小或类似的东西,但我找不到任何相关信息。我不知道也许我走错了路。
func readData (dataType: String) -> NSArray? {
let out = NSPipe()
let task = NSTask()
task.launchPath = "/usr/sbin/system_profiler"
task.arguments = ["-xml",dataType]
task.standardOutput = out
task.launch()
task.waitUntilExit()
if task.terminationStatus != 0 {
NSLog("system_profiler returned error status")
return nil
}
let data = out.fileHandleForReading.readDataToEndOfFile()
let plist : AnyObject?
do {
plist = try NSPropertyListSerialization.propertyListWithData(data,
options: [.Immutable],
format: nil)
} catch let error as NSError {
NSLog("%@", "Failed to parse system_profiler results. \(error.localizedDescription)")
return nil
}
return plist …Run Code Online (Sandbox Code Playgroud)