2010-11-08 90 views
3

我正在运行下面一个简单的AppleScript运行时shell脚本的进步......查看输出或AppleScript的

do shell script "diskutil partitionDisk /dev/disk1 1 APM JHFS+ Test 1G"

这是一个更大的脚本的一部分。上述工作正常,但有没有办法查看进度?任何事情都可以做到,最好是终端窗口内的实际命令是好的。

由于

回答

1

调用的终端,并具有终端运行磁盘工具:

"xterm -e 'diskutil partitionDisk /dev/disk1 1 APM JHFS+ Test 1G'" 是命令行传递到外壳,并且具有xterm(1)显示磁盘工具输出。可以使用其他终端(不包括xterm),并且可以控制窗口大小字体和颜色:请参阅终端的手册页。

也许另一种显示进度的方法是在窗口中运行整个脚本(而不仅仅是diskutil部分)。

2

我经常需要在运行时看到执行shell脚本命令和AppleScript脚本的其他各个阶段的进度。我为做了什么shell脚本将输出记录到日志文件中,然后使用名为MKConsole的程序将其显示在桌面上。例如:

do shell script "diskutil verifyPermissions // &> /output.log" 

在上述命令磁盘工具将启动并开始运行并登录标准输出到I创建名为output.log位于/日志文件。它不会显示您在终端中看到的0%... 10%... 20%进度指示器,但它确实会向您显示所有其他输出。

然后,我配置MKConsole的首选项来读取此日志文件,然后实时它会显示我的桌面上该文件的所有新日志消息。

如果您需要非shell脚本命令的进度并需要记录AppleScript活动,那么您可以使用记录器命令。例如:

do shell script "logger -f /output.log The current count is: " & some_variable 

如果您有它运行很长一段时间,并使用重复循环,你想知道脚本是什么阶段完成的同时运行,那么 上述记录命令一个AppleScript是获得进展反馈的好方法。我通常在末尾重复的脚本底部输入一个记录器命令,这样它就是循环迭代过程中最后一件事。

记录器命令方法与MKConsole配合良好,因此您可以在桌面上实时查看输出。