Ein Alias ist dafür nicht in der richtigen Lösung - die geschachtelten Fluchten, die erforderlich sind, werden (werden) nicht mehr verwaltet. Ich würde dies als Funktion implementieren, indem ich eine Bash-Funktion namens Heredoc in einer Funktion benutze :
git_workspace () { ( osascript <<-'EOF' tell application "Terminal"' tell application "System Events" to tell process "Terminal" to keystroke "n" using command down do script with command "cd `pwd`;clear && git_fetch" in selected tab of the front window end tell EOF if [ $? -eq 0 ]; then osascript <<-'EOF' tell application "Terminal" tell application "System Events" to tell process "Terminal" to keystroke "n" using command down do script with command "cd `pwd`;clear && git_tree" in selected tab of the front window end tell EOF fi ) &>/dev/null }
- Die
osascript
Heredoc-Eingabe wird als Datei und nicht als String-Argument angezeigt. Das-e
Argument ist daher nicht erforderlich. - Die Heredoc-Anweisung gibt den Text genau so aus, wie er zwischen den Markierungen
<<EOF
und geschrieben wurdeEOF
, mit den folgenden Vorbehalten:- In der Standardeinstellung ein heredoc wird interpretiert die \, $ und `Zeichen. Um dies zu deaktivieren, setzen Sie den Heredoc-
<<EOF
Marker in Anführungszeichen,<<'EOF'
- Alles zwischen den beiden Markern wird ausgegeben, einschließlich des führenden Leerraums. Um das Einrücken zu ermöglichen (der Vorteil liegt darin, dass lesbarer Code anstelle von Skriptfunktionen verwendet wird), entfernt bash alle führenden Tabulatoren aus dem Text, wenn der Heredoc-Operator ein Bindestrich-Argument hat
<<-'EOF'
. - In jedem Fall muss sich das schließende heredoc-Tag in einer neuen Zeile ohne führenden Leerzeichen (Registerkarten oder sonstiges) befinden.
- In der Standardeinstellung ein heredoc wird interpretiert die \, $ und `Zeichen. Um dies zu deaktivieren, setzen Sie den Heredoc-
Wenn Sie diesen Ansatz verwenden, können Sie die osascript-Befehle genau so eingeben, wie sie nativ ausgegeben würden, ohne dass Sie Probleme mit der Erweiterung / Ersetzung von bash beheben müssen.
Ich habe beide Befehlssequenzen in einer Subshell eingeschlossen, um das Umleiten der Ausgabe zu erleichtern.
Wenn Sie möchten, um zu sehen, was der Text / Argument aussehen osascript, ändert vorübergehend die Funktion durch Ersetzen osascript
mit cat
und die Umleitung auf / dev / null entfernen. Da die Funktion jetzt geschrieben ist, sieht die Ausgabe folgendermaßen aus:
tell application "Terminal"' tell application "System Events" to tell process "Terminal" to keystroke "n" using command down do script with command "cd `pwd`;clear && git_fetch" in selected tab of the front window end tell tell application "Terminal" tell application "System Events" to tell process "Terminal" to keystroke "n" using command down do script with command "cd `pwd`;clear && git_tree" in selected tab of the front window end tell