显示自动终端命令的结果


9

TL; DR如果通过Automator创建.app,如何在对话框或终端窗口中显示Shell脚本的结果?

我正在使用Automator运行Shell脚本

adb install /Directory/$1.apk

如果我通过Automator运行它,则可以看到结果(安装成功或找不到filname.apk或其他任何终端告诉我的结果)。如果我另存为应用程序并双击运行,那么我看不到这些结果。

如何显示对话框或终端窗口,以显示我运行的脚本的结果?


我用这个问题来创建这个问题:github.com/robertocaldas/AdbInstallService
Roberto

Answers:


2

您可以通过以下两种方法执行此操作:

  • 在“ 运行Shell脚本”之后添加一个“ 要求确认”操作,并在消息字段中使用。$1
  • 添加另一个Run Shell脚本并执行osascript -e 'tell app "System Events" to display dialog "$1"'。您必须在通过输入下拉菜单中选择作为参数

8
它仅$1使用这些方法之一显示。
Reed

@Jakar我已经对它进行了第一个“运行Shell脚本”操作进行了测试echo something,它肯定有效。也许您是Script没有返回任何内容?
Thecafremo 2014年

好的。我认为这可能与adb(Android开发人员SDK的一部分)有关,因为在我运行该命令后,终端中会输出输出,而不是通过自动脚本执行。
Reed

轻微修改以处理字符串插值osascript -e'tell app“ System Events”以显示对话框“'” $ 1“'”'
bingles

21

如果只有几行输出,则需要将其分配给变量,然后显示一个确认对话框,显示输出。

  1. 添加操作“变量的设置值”
  2. 输入一个新变量,例如 output
  3. 添加操作“要求确认”
  4. 在消息字段中,输入上面声明的变量名称。在输入变量名时,Automator建议填写变量名。按Enter键接受。这样可以防止Automator将变量名解释为纯文本消息。

看起来像这样: 具有文本输出的自动化器

注意:我也尝试了这种$1方法,但是没有成功。

如果输出的行很多,则应将所有输出定向到新的TextEdit文档中。为此,只需在脚本操作之后添加“ New TextEdit Document”操作即可。

可能看起来像这样: 新文本编辑文档操作

提示:诊断消息通常输出为标准错误。要收集发送到标准错误的文本,请exec 2>&1在bash脚本的顶部添加。


1
哇,我到底需要什么!
code4j

1
此解决方案对我有效,而接受的版本则无效
Ilias Karim

这对我真的很有用,并解释了为什么我无法获得输出的价值。伟大的工作
CommentLuv

可以修改它以打开Text Mate文档吗?
格雷格,

1

需要使用“变量的设置值”

在此处输入图片说明


试图拒绝投票,因为这只是丹尼尔·克(Daniel K)的回答的副本,除了信息较少之外……
adfaklsdjf,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.