Wie schließe ich eine OS X-Anwendung über die Befehlszeile mithilfe eines in meinem .bash_profile definierten Alias?

Wie schließe ich eine OS X-Anwendung über die Befehlszeile mithilfe eines in meinem .bash_profile definierten Alias?

Ich habe das folgende Shell-Skript gefunden, mit dem man einer OS X-Anwendung das Beenden mitteilen kann:

#!/bin/sh

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

Ich habe mehrere einfache Alias-Befehle in meinem .bash_profile und möchte dort einen „quit“-Befehl hinzufügen, anstatt dieses Skript zu verwenden. Ich habe Folgendes erstellt, aber es funktioniert nicht:

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

Ich bin sicher, dass ich den Befehl verpfuscht habe. Irgendwelche Ratschläge?

Antwort1

Verwenden Sie stattdessen eine Funktion:

function quit {
osascript <<EOF
  tell application "$*" to quit
EOF
}

Antwort2

Aliase können keine Parameter haben. Aliase führen eine strikte Textersetzung durch, bei der „Parameter“ quasi am Ende landen würde.

Ich würde eine Funktion erstellen, die Parameter haben kann.

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

Leider kann ich das heute nicht testen und verifizieren (kein Mac), aber als Funktion würde die Idee funktionieren.

Antwort3

muss es ein Alias ​​sein?

pkill Application

wie zum Beispiel pkill Safarisollte das gleiche tun

verwandte Informationen