Я новичок в создании сценариев оболочки. Я пытаюсь отправить вывод некоторых переданных команд в команду open
в bash
в OSX.
Моя конечная цель - скомпилировать приложение Flex / Actionscript из TextWrangler, вызвав bash-скрипт с небольшим количеством Applescript и воспроизвести результат непосредственно во 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
, кажется, не ожидает ввода?