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

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

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

adb install /Directory/$1.apk

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

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

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

Ответы (4)

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

  • Добавление действия « Запросить подтверждение » после действия « Выполнить сценарий оболочки» и использование $1в поле сообщения .
  • Добавление еще одного сценария Run Shell и выполнение osascript -e 'tell app "System Events" to display dialog "$1"'. Вам нужно будет выбрать в качестве аргумента в раскрывающемся списке ввода прохода .
Он просто отображается $1с помощью любого из этих методов.
@Jakar Я протестировал его, выполнив первое действие Run Shell Scriptecho something , и оно определенно работает. Возможно, ваш скрипт что-то не возвращает?
Хорошо. Я думаю, что это может иметь какое-то отношение adb(часть SDK для разработчиков Android), потому что после запуска этой команды в терминале есть вывод, но не через сценарий автомата.
Небольшая модификация для обработки интерполяции строк osascript -e 'сообщить приложению "Системные события" для отображения диалога "'"$1"'"'

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

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

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

NB: Я тоже попробовал этот $1подход, но не преуспел.

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

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

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

вау, именно то, что мне было нужно!
это решение сработало для меня, тогда как принятая версия не сработала
это было действительно полезно для меня и объяснило, почему я не мог получить значение вывода. прекрасная работа
Можно ли изменить это, чтобы открыть документ Text Mate ?

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

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

Искушение понизить голосование, потому что это просто дубликат ответа Дэниела К., за исключением меньшего количества информации...
  1. Добавить действие «Запустить AppleScript»
  2. Вставьте этот скрипт:
on run {input, parameters}
    display dialog input
end run
display dialogявляется частью стандартных дополнений в AppleScript , и в этом случае нет абсолютно никакой необходимости tell application "System Events" to.
@user3439894 user3439894 Спасибо, короче. Отредактировано.