Показать результаты команды Automator-Terminal


9

TL; DR Если я создаю .app через Automator, как я могу показать результаты сценария оболочки в диалоговом окне или окне терминала?

Я использую Automator для запуска сценария оболочки

adb install /Directory/$1.apk

и если я запускаю его через Automator, я вижу результаты (установка прошла успешно или я не могу найти filname.apk или какой-либо другой терминал, который мне скажет). Если я сохраню как приложение и дважды нажму, чтобы запустить, то я не смогу увидеть эти результаты.

Что я могу сделать, чтобы показать диалоговое окно или окно терминала, в котором отображаются результаты запускаемого мной скрипта?


Я использовал этот вопрос, чтобы создать это: github.com/robertocaldas/AdbInstallService
Роберто

Ответы:


2

Есть несколько способов сделать это:

  • Добавление действия « Запросить подтверждение» после запуска сценария оболочки и его использование $1в поле сообщения .
  • Добавление еще одного сценария Run Shell и выполнение osascript -e 'tell app "System Events" to display dialog "$1"'. Вам придется выбрать в качестве аргумента в раскрывающемся списке проходной ввод .

8
Он просто отображается $1с помощью любого из этих методов.
Рид

@Jakar Я протестировал его, выполнив первое действие Run Shell Script , echo somethingи оно определенно работает. Возможно, вы сценарий не возвращает что-то?
Thecafremo

Ладно. Я думаю, что это может быть как-то связано с adb(частью SDK для Android-разработчиков), потому что вывод в Terminal появляется после того, как я запускаю эту команду, но не через скрипт automator.
Рид

Небольшая модификация для обработки интерполяции строк osascript -e 'заставляет приложение "Системные события" отображать диалоговое окно "'" $ 1 "'" "
bingles

21

Если у вас есть только несколько строк вывода , вам нужно присвоить их переменной, а затем отобразить диалоговое окно подтверждения, отображающее вывод.

  1. добавить действие "Установить значение переменной"
  2. введите новую переменную, например output
  3. добавить действие "Запросить подтверждение"
  4. в поле сообщения введите имя переменной, объявленное выше. При вводе имени переменной Automator предложит завершить имя переменной. Подтвердите, нажав клавишу Enter. Это не позволяет Automator интерпретировать имя переменной как текстовое сообщение.

Это будет выглядеть так: Автоматизатор с выводом текста

NB: я тоже попробовал $1подход, но не смог.

Если у вас много строк вывода , вы должны направить весь вывод в новый документ TextEdit. Для этого просто добавьте действие «Новый документ TextEdit» после действия сценария.

Это может выглядеть так: Новый текст Редактировать действие документа

Подсказка: диагностические сообщения часто выводятся со стандартной ошибкой. Чтобы также собрать текст, отправляемый в стандартную ошибку, добавьте exec 2>&1вверху ваш скрипт bash.


1
вау именно то что мне нужно!
code4j

1
это решение работало для меня, тогда как принятая версия не работала
Илиас Карим

это было действительно полезно для меня и объяснило, почему я не мог получить значение результата. отличная работа
CommentLuv

Можно ли это изменить, чтобы открыть документ Text Mate ?
Грег

1

Необходимо использовать «Задать значение переменной»

введите описание изображения здесь


Соблазн понизить голос, потому что это всего лишь дубликат ответа Даниэля К., за исключением того, что он содержит меньше информации ...
adfaklsdjf
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.