Следующий вопрос связан с ответом, который был размещен на this question:Как я могу избавиться от этого вывода osascript?
Мне нравится понятие создания моей собственной функции, которая открывает новый терминал, так что сценарий, который Craig Walker связан с тем, что выше ссылочного вопрос подходит мой необходимо. Сценарий, написанный Марком Liyanage, найден here.
Этот сценарий заключается в следующем:
#!/bin/sh
#
# Open a new Mac OS X terminal window with the command given
# as argument.
#
# - If there are no arguments, the new terminal window will
# be opened in the current directory, i.e. as if the command
# would be "cd `pwd`".
# - If the first argument is a directory, the new terminal will
# "cd" into that directory before executing the remaining
# arguments as command.
# - If there are arguments and the first one is not a directory,
# the new window will be opened in the current directory and
# then the arguments will be executed as command.
# - The optional, leading "-x" flag will cause the new terminal
# to be closed immediately after the executed command finishes.
#
# Written by Marc Liyanage <http://www.entropy.ch>
#
# Version 1.0
#
if [ "x-x" = x"$1" ]; then
EXIT="; exit"; shift;
fi
if [[ -d "$1" ]]; then
WD=`cd "$1"; pwd`; shift;
else
WD="'`pwd`'";
fi
COMMAND="cd $WD; [email protected]"
#echo "$COMMAND $EXIT"
osascript 2>/dev/null <<EOF
tell application "Terminal"
activate
do script with command "$COMMAND $EXIT"
end tell
EOF
Я сделал одно изменение в сценарии на связанном сайте; Я прокомментировал строку, которая выводит «$ COMMAND $ EXIT», чтобы устранить некоторую многословность. Тем не менее, когда я запускаю сценарий, я все еще получаю этот выход
tab 1 of window id 2835
непосредственно перед открывает новое окно и выполняет команду, я прохожу в. Любые идеи, почему это будет происходить? (Я пытался переместить редирект на поток ошибок в/DEV/нуль перед вызовом oascript, но это не имеет никакого значения.)
Работает как очарование. В исходном скрипте был osascript 2>/dev/null << EOF , который перенаправлял stderr в/dev/null, поэтому я его перевел. Я не думал попробовать перенаправить регулярный вывод на/dev/null ... Спасибо! – barclay