Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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?

share|improve this question

2 Answers 2

up vote 6 down vote accepted

Use a function instead:

function quit {
osascript <<EOF
  tell application "$*" to quit
EOF
}
share|improve this answer
    
tell application "$*" to quit is more compact. –  Daniel Beck Dec 16 '10 at 2:02
    
@DanielBeck: I've edited it to remove other redundancies as well, such as defining an alias whose only purpose is to call the function. I left the HEREDOC-style quoting as I was having problems with alternatives and grew impatient ;) –  iconoclast Oct 4 '13 at 0:28

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.