Просмотр результатов или хода выполнения сценария оболочки при запуске в AppleScript - PullRequest
3 голосов
/ 08 ноября 2010

Я работаю над простым AppleScript, который запускает следующее ...

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

Это часть большего сценария. Выше работает нормально, но есть ли способ просмотра прогресса? Все будет действительно хорошо, желательно, чтобы действительная команда в окне терминала была бы хорошей.

Спасибо

Ответы [ 2 ]

3 голосов
/ 26 ноября 2010

Мне часто нужно видеть ход выполнения команд сценария оболочки и других различных этапов сценария AppleScript во время его работы.То, что я делаю для do shell script , - записывает вывод в файл журнала и затем использует программу с именем MKConsole , чтобы отобразить его на рабочем столе.Например:

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

В приведенной выше команде diskutil запустится и запустится и запишет стандартный вывод в созданный мной файл журнала с именем output.log, расположенный в /.Он не покажет вам индикатор прогресса 0% ... 10% ... 20%, который вы видите в Терминале, но он покажет вам все остальные выходные данные.

Затем я настраиваю предпочтения MKConsole для чтенияэтот файл журнала, а затем в режиме реального времени он будет отображать все новые сообщения журнала из этого файла на моем рабочем столе.

Если вам требуется выполнение команд сценариев, не связанных с оболочкой, и необходимо регистрировать активность AppleScript, вы можете использовать команду logger .Например:

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

Если у вас есть AppleScript, который работает в течение длительного времени и использует повторяющиеся циклы, и вы хотите знать, на какой стадии завершения находится скрипт во время работы, тогда приведенный выше Команда logger - отличный способ получить некоторую обратную связь о прогрессе.Я обычно добавляю команду logger прямо внизу скрипта над повторением конца, чтобы это было последним, что он делает в этой итерации цикла.

Командный метод logger хорошо работает и с MKConsole, так что вы можете видеть результаты в реальном времени на вашем рабочем столе.

1 голос
/ 09 ноября 2010

Вызовите терминал и запустите терминал diskutil:

"xterm -e 'diskutil partitionDisk /dev/disk1 1 APM JHFS+ Test 1G'" - это командная строка для передачи в оболочку, и xterm (1) отобразит вывод diskutil.Можно использовать другие терминалы (кроме xterm), а также можно контролировать шрифт размера окна и цвета: см. Страницу руководства для терминала.

Возможно, другим способом показать прогресс будет запуск всего скрипта (не только часть диска) в окне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...