2009-06-25 6 views
3

L'arrière-plan est un script shell permettant d'ouvrir le fichier .m3u d'une station de radio Web. Par conséquent, je veux savoir à l'intérieur du script, quel est le programme de l'utilisateur pour ouvrir ces fichiers. Pour l'instant, il doit définir la variable d'environnement $ PLAYER, mais ce n'est évidemment pas une bonne façon de procéder. Alternative: Y at-il une commande qui prend un nom de fichier et recherche lui-même un programme approprié pour gérer ce fichier? Comme file, par exemple,Bash: Obtention du programme standard pour le type de fichier

open-file my_playlist.m3u 

Le script doit être portable, il courra au moins sur Ubuntu, Debian et les ordinateurs Windows/Cygwin.

Cheers,

Répondre

7

Cela devra être fait différemment sur chaque plate-forme. Sur Mac OS X, la commande "open" fera ce que vous voulez.

Sous Linux, cela devient trouble, car l'environnement de bureau (GNOME ou KDE) conserve sa propre liste d'applications à exécuter pour chaque type de fichier.

Il y a deux fichiers que vous pouvez rechercher dans Ubuntu/GNOME qui détiennent cette information: ~/.local/share/applications/defaults.list et ~/.local/share/applications/mimeinfo.cache

Quelqu'un d'autre sait, espérons comment faire cela dans Windows et peut carillon

Edit:. Stealing des autres réponses:

Linux:

xdg-open [nom]

Cygwin:

cygstart [nom]

Et pour être complet, voici un lien à une question précédente sur la façon de détecter le système d'exploitation que vous exécutez sur: Detect OS from bash Script

+0

Merci pour la réponse rapide, mais les fichiers Gnome ne semblent pas contenir ce que j'ai cherché. Sur Ubuntu, Totem ouvre M3U par défaut, mais 'grep audio mimeinfo.cache' m'apporte' kde-kaboodle.desktop', qui n'est même pas encore installé (kaboodle, je veux dire). J'ai rapidement scanné ~/.gconf, mais cela ne semble pas non plus contenir les informations recherchées. – Boldewyn

+0

yup, ça l'a fait. – Boldewyn

+1

Si votre distribution est si ancienne que les utilitaires xdg n'existent pas encore, essayez gnome-open (Gnome), kfmclient exec (KDE), exo-open (Xfce), open (GNUstep), etc ... – ephemient

0

J'aimerais s'il y avait une réponse différente à cela mais je pense que vous devrez vérifier les configs d'association de fichier pour chaque environnement de bureau et gestionnaire de dossier là (ainsi, nautilus, konqueror, thunar, mc ... tous dans différents endroits et dans différents formats AFAIK), ainsi que de déterminer lequel de ceux-ci l'utilisateur utilise réellement ...

Si quelqu'un a une idée différente, je suis prêt à l'entendre.

+0

Je vois xdg-open mentionné mais cela n'existe sur aucune des machines que je viens de vérifier - Debian, Slack et Zenwalk.cygstart est tout bon :) –

+1

Comme je viens de commenter l'autre réponse: Si votre distribution est si ancienne que les utilitaires xdg n'existent pas encore, essayez gnome-open (Gnome), kfmclient exec (KDE), exo-open (Xfce), open (GNUstep), etc ... Traditionnellement, cette information d'association de fichiers est stockée dans mailcap, mais les bureaux modernes ne semblent plus comprendre cela :( – ephemient

+0

Ce ne sont pas des versions particulièrement anciennes ... Vous ne pouvez pas banque sur tout le monde en cours d'exécution la dernière version de leur distribution - Je n'installe jamais .0 versions :) Encore, des informations utiles, merci –

Questions connexes