Per preferire Terminal per aprire i file .sh - utilizzando il comando defaults, senza usare Finder
Nella maggior parte dei casi, tutto ciò che è necessario dovrebbe essere possibile dalla riga di comando ...
Preparazione
Due comandi:
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;"
Se uno dei due comandi rivela una preferenza esistente
Utilizza Xcode o qualsiasi altro editor di elenchi di proprietà appropriato per rimuovere il dizionario pertinente dalla chiave LSHandlers
nel seguente file:
~/Library/Preferences/com.apple.LaunchServices.plist
Suggerimenti:
Aggiunta alle preferenze LaunchServices, per Terminal per visualizzare e modificare i file .sh
Due comandi a una riga.
A seconda delle esigenze, il primo comando da solo può essere sufficiente:
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"; }'
Per le nuove preferenze da rispettare
Le modifiche al livello di persistenza del dominio utente dei servizi di lancio devono essere riconosciute . Per questo, meno dirompente per l'utente finale sarà:
- un riavvio del sistema operativo.
Dalla riga di comando, se il riavvio immediato è accettabile:
sudo shutdown -r now
Sfondo
Informazioni su Terminal.app supporto per .sh (public.shell-script)
Considera il risultato del seguente comando:
defaults read /Applications/Utilities/Terminal.app/Contents/Info
Terminale da parte per un momento: a volte è inappropriato (o semplicemente inutile) forzare l'apertura di un tipo di documento, da un'app che è progettata senza supporto per quel tipo.
Per Terminale, non intendo arrecare danno nella gestione del tipo public.shell-script
.