将新函数传递给osascript命令

时间:2013-10-14 18:00:24

标签: macos osascript

我有更改终端标题的功能。我希望将其传递给osascript命令。

我试试:

function title {
  name=hostname
  printf "\033]0;$name %s\007" "$1"
}

osascript -e "tell application \"Terminal\"" \
    -e "tell application \"System Events\" to keystroke \"t\" using {command down}" \
    -e "do script \"title newTitle \" in front window" \
    -e "end tell"
    > /dev/null;

它不起作用。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:2)

您的功能是否在.bash_profile中定义? 如果是这样,这应该工作(下面)。如果没有,您需要添加它,否则您创建的新选项卡不知道该功能。

没有$1替换的多行脚本可以放在单引号内而不会转义...

osascript -e 'tell application "Terminal"
tell application "System Events" to keystroke "t" using {command down}
do script "title NewTitle" in front window
end tell'

由于在启动新标签页时生成的文字,> /dev/null似乎没有太大区别。