5

I found the following shell script that can be used to tell an OS X application to quit:

#!/bin/sh

echo | osascript <<EOF
tell application "$*"
  quit
end tell
EOF

I have several simple alias commands in my .bash_profile and would like to add a "quit" command there instead of using this script. I created the following, but it doesn't work:

alias quit='osascript -e "quit application \"$1\""' 

I'm sure I've munged the command. Any advice?

wonea
  • 1,877

3 Answers3

8

Use a function instead:

function quit {
osascript <<EOF
  tell application "$*" to quit
EOF
}
iconoclast
  • 3,449
devanjedi
  • 161
2

Aliases can't have parameters. Aliases do a strict text substitution, where 'parameters' would kind of end up at the end.

I'd do a function, which can have parameters.

function quit
{
    if [ $# -ne 0 ]; then
        echo "usage: quit _appname_" >&2
        return
    fi
echo | osascript <<EOF
tell application "$1"
  quit
end tell
EOF
}

Sorry, but I can't test this and verify today (no Mac), but the idea would work as a function.

Rich Homolka
  • 32,350
0

does it have to be an alias?

pkill Application

like, for example pkill Safari should do the same

dajo
  • 1