我几乎是shell脚本的新手。我试图将一些管道命令的输出发送到OSX中bash
的open
命令。Bash:打开命令的管道参数失败。打开命令过早过早?
我的最终目标是通过调用带有一个Applescript的bash脚本从TextWrangler编译Flex/Actionscript应用程序,并直接在Flash Player中播放结果。 Applescript几乎在做它的工作。但是bash脚本不能像我所期望的那样工作。当我省略Applescript并直接将其直接放入终端时,结果相同。
这是什么的AppleScript被发送到终端:
mxmlc -warnings=false DocumentClass.as | tail -n 1 | sed 's/[[:space:]].*$//' | open -a 'Flash Player'
所以基本上,我读的mxmlc
输出,最后一行通常看起来是这样的:
/Users/fireeyedboy/Desktop/DocumentClass.swf (994 bytes)
和我将所有遇到的第一个空间后的所有东西都剥离。我知道这还不够防弹,它仍然只是一个概念证明。当我大致工作时,我会改进。它返回所需的结果至今:
/Users/fireeyedboy/Desktop/DocumentClass.swf
但正如你所看到的,我再尝试这种管结果sed
给Flash Player而这也正是它失败。 Flash Player似乎太早开放。我希望Flash Player只能在脚本完成sed
命令后才能打开。但它提前开放。
所以我的问题是双重的:
- 它甚至有可能到管道的 参数open命令这 方式?
- 我是否需要使用某种类型的延迟命令 才能使这个 工作,因为
open
命令似乎没有在等待输入?
它的工作。我首先尝试了static_rtti的答案。感谢您的额外信息! – 2010-09-01 12:29:03