Para preferir Terminal para abrir archivos .sh - usando el comando por defecto, sin usar Finder
En la mayoría de los casos, todo lo que se requiere debería ser posible desde la línea de comandos
Preparación
Dos comandos:
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;"
Si cualquiera de los dos comandos revela una preferencia existente
Utilice Xcode o cualquier otro editor de listas de propiedades adecuado para eliminar el diccionario correspondiente del LSHandlers
dentro del siguiente archivo:
~/Library/Preferences/com.apple.LaunchServices.plist
Pistas:
Añadir a las preferencias de LaunchServices, para que Terminal pueda ver y editar archivos .sh
Dos comandos de una sola línea.
Dependiendo de sus necesidades, el primer comando puede ser suficiente:
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"; }'
Para que se respeten las nuevas preferencias
Modificaciones de la capa de persistencia del dominio del usuario de Launch Services debe ser reconocido . Para ello, lo menos perjudicial para el usuario final será:
- un reinicio del sistema operativo.
Desde la línea de comandos, si se acepta el reinicio inmediato:
sudo shutdown -r now
Antecedentes
Comprensión del soporte de Terminal.app para .sh (public.shell-script)
Considere el resultado del siguiente comando:
defaults read /Applications/Utilities/Terminal.app/Contents/Info
Terminal aparte por un momento: a veces es inapropiado (o simplemente no vale la pena) forzar la apertura de un tipo de documento, por parte de una app que es diseñado sin soporte para ese tipo.
Para la Terminal, imagino que no hay daño en el manejo de la public.shell-script
tipo.