Bevorzuziehen, dass Terminal .sh-Dateien öffnet - mit dem Standardbefehl, ohne Finder zu verwenden
In den meisten Fällen sollte alles, was erforderlich ist, über die Befehlszeile möglich sein…
Vorbereitung
Zwei Befehle:
defaults read com.apple.LaunchServices | grep -B 1 -A 3 public.shell-script
defaults read com.apple.LaunchServices | grep -B 1 -A 4 "LSHandlerContentTag = sh;"
Wenn einer der Befehle eine vorhandene Präferenz anzeigt
Verwenden Sie Xcode oder einen anderen geeigneten Eigenschaftenlisten-Editor, um das entsprechende Wörterbuch aus dem LSHandlers
Schlüssel in der folgenden Datei zu entfernen :
~/Library/Preferences/com.apple.LaunchServices.plist
Hinweise:
Hinzufügen zu den LaunchServices-Einstellungen, damit Terminal .sh-Dateien anzeigen und bearbeiten kann
Zwei einzeilige Befehle.
Abhängig von Ihren Anforderungen kann der erste Befehl allein ausreichen:
defaults write com.apple.LaunchServices LSHandlers -array-add '{ LSHandlerContentType = "public.shell-script"; LSHandlerRoleViewer = "com.apple.Terminal"; LSHandlerRoleEditor = "com.apple.Terminal"; }'
defaults write com.apple.LaunchServices LSHandlers -array-add '{ LSHandlerContentTag = "sh"; LSHandlerContentTagClass = "public.filename-extension"; LSHandlerRoleViewer = "com.apple.Terminal"; LSHandlerRoleEditor = "com.apple.Terminal"; }'
Damit die neuen Präferenzen respektiert werden
Änderungen an der Persistenzschicht der Benutzerdomäne von Launch Services müssen bestätigt werden . Dies ist für den Endbenutzer am wenigsten störend:
- ein Neustart des Betriebssystems.
Wenn ein sofortiger Neustart über die Befehlszeile akzeptabel ist:
sudo shutdown -r now
Hintergrund
Grundlegendes zur Terminal.app-Unterstützung für .sh (public.shell-script)
Betrachten Sie das Ergebnis des folgenden Befehls:
defaults read /Applications/Utilities/Terminal.app/Contents/Info
Terminal für einen Moment beiseite: Es ist manchmal unangemessen (oder einfach wertlos), das Öffnen eines Dokumenttyps durch eine App zu erzwingen, die ohne Unterstützung für diesen Typ entwickelt wurde.
Für Terminal stelle ich mir keinen Schaden im Umgang mit dem public.shell-script
Typ vor.