Osascript -e "$CMD_ACTIVATE" -e "$cmd" -e "$CMD_SETTITLE" >/dev/nullĮlse # No command specified simply open a new tab or window. # Note: Even though we do not strictly need to activate Terminal first, we do it, as assigning the custom title to the 'front window' would otherwise sometimes target the wrong window. Osascript -e "$cmd" -e "$CMD_SETTITLE" >/dev/null Osascript -e "$CMD_SAVE_ACTIVE_WIN" -e "$cmd" -e "$CMD_SETTITLE" -e "$CMD_REACTIVATE_PREV_WIN" >/dev/null
If (( inBackground = 2 )) then # Restore the previously active window after creating the new one. # Note: $CMD_NEWWIN is not needed, as $cmd implicitly creates a new window.
Osascript -e "$CMD_ACTIVATE" -e "$CMD_NEWTAB" -e "$cmd in front window" -e "$CMD_SETTITLE" >/dev/null Osascript -e "$CMD_SAVE_ACTIVE_APPNAME" -e "$CMD_ACTIVATE" -e "$CMD_NEWTAB" -e "$cmd in front window" -e "$CMD_SETTITLE" -e "$CMD_REACTIVATE_PREV_APP" >/dev/null Osascript -e "$CMD_SAVE_ACTIVE_APPNAME" -e "$CMD_SAVE_ACTIVE_TAB" -e "$CMD_ACTIVATE" -e "$CMD_NEWTAB" -e "$cmd in front window" -e "$CMD_SETTITLE" -e "$CMD_REACTIVATE_PREV_APP" -e "$CMD_REACTIVATE_PREV_TAB" >/dev/null If (( inBackground = 2 )) then # Restore the previously active tab after creating the new one. # !! Sadly, because we must create a new tab by sending a keystroke to Terminal, we must briefly activate it, then reactivate the previously active application. # '>/dev/null' suppresses AppleScript's output when it creates a new tab. # Open new tab or window, execute command, and assign tab title. Local CMD_NEWTAB='tell application "System Events" to keystroke "t" using \"" Local CMD_ACTIVATE='tell application "Terminal" to activate' # Sadly, there is no direct way to open a new tab in an existing window, so we must activate Terminal first, then send a keyboard shortcut. # Commands for opening a new tab in the current Terminal window. Local CMD_NEWWIN=$CMD_PREFIX # Curiously, simply executing 'do script' with no further arguments opens a new *window*. # Command for opening a new Terminal window (with a single, new tab). Local CMD_PREFIX='tell application "Terminal" to do script' # All remaining parameters, if any, make up the command to execute in the new tab/window. *) # 1st argument reached proceed with argument-parameter analysis below. Local targetDesc='new tab in the active Terminal window' # If this function was invoked directly by a function named 'newwin', we open a new *window* instead # When invoked via a function named 'newwin', opens a new Terminal *window* instead. # Open new tab, execute script, close tab. Newtab eval "ls \$HOME/Library/Application\ Support echo Press a key to exit. # Open new tab, execute commands, close tab.
Newtab eval "cd ~/Library/Application\ Support ls" # Double-quote the command passed to `eval` and use backslash-escaping inside. # Open a new tab with a given working directory and execute a command Newtab ls -l "$Home/Library/Application Support" # Open new tab and execute command (quoted parameters are supported).