2009-06-25 3 views
3

背景はウェブラジオ局の.m3uファイルを開くためのシェルスクリプトです。したがって、スクリプト内でそのファイルを開くためのユーザーのプログラムは何かを知りたいです。現時点では、環境変数$ PLAYERを設定する必要がありますが、明らかにそれは良い方法ではありません。Bash:ファイルタイプの標準プログラムを入手する

代替:ファイル名を取り、そのファイルを処理する適切なプログラムを検索するコマンドはありますか?同様fileは、例えば、

open-file my_playlist.m3u 

スクリプトは、少なくともUbuntuの、DebianとWindowsの/ Cygwinのマシン上で実行され、移植する必要があります。

乾杯、

答えて

7

これは各プラットフォームで異なる必要があります。 Mac OS Xでは、「開く」コマンドはあなたが望むことをするでしょう。

Linuxでは、デスクトップ環境(GNOMEまたはKDE)が各ファイルタイプに対して実行するアプリケーションの独自のリストを保持しているので、それは暗くなります。

あなたがこの情報を保持するのUbuntu/GNOMEで捜すことができる2つのファイルがあります。 〜/ .localの/共有/アプリケーション/ defaults.listと 〜/ .localの/共有/アプリケーション/ mimeinfo.cache

は、

他の誰かがうまくいけば、Windowsでこれを行う方法を知っているとチャイムができ

編集:他の回答から盗む:

のLinux:

のxdg-オープン[ファイル名]

のCygwin:

cygstart [ファイル名]

万全を期すために、ここにあなたが実行しているオペレーティングシステムを検出する方法について前の質問へのリンクです:私が好きなDetect OS from bash Script

+0

ありがとうございましたが、Gnomeファイルには検索対象が含まれていないようです。 Ubuntuでは、TotemはデフォルトでM3Uを開きますが、 'grep audio mimeinfo.cache'は私に' kde-kaboodle.desktop'をもたらします。これはまだインストールされていません(kaboodle、私は意味します)。 〜/ .gconfをすばやくスキャンしましたが、検索された情報が含まれていないようです。 – Boldewyn

+0

ええ、それはそれをしました。 – Boldewyn

+1

gnome-open(Gnome)、kfmclient exec(KDE)、exo-open(Xfce)、open(GNUstep)などを試してみてください。 – ephemient

0

これとは別の答えがあったとしても、デスクトップ環境とファイルマネージャのファイルアソシエーション設定をチェックしなければならないと思います(つまり、nautilus、konqueror、thunar、mc ... AFAIKをフォーマットする)、これらのうちどれが実際に使用されているかを確認する...

誰かが別のアイデアを持っていたら、私はそれを聞きたいと思っています。

+0

xdg-openが記載されていますが、これは私が今チェックしたマシンには存在しません - Debian、Slack、Zenwalk。cygstartはすべて良いです:) –

+1

私はちょうど他の答えにコメントしました:あなたのディストリビューションが古いので、xdgユーティリティがまだ存在しない場合は、gnome-open(Gnome)、kfmclient exec(KDE)、exo-open Xfce)、open(GNUstep)など...伝統的に、このファイル関連情報はmailcapに保存されていますが、現代のデスクトップはこれ以上理解していないようです:( – ephemient

+0

特に古いバージョンではありません...誰もがディストリビューションの最新バージョンを実行しています - 私は.0バージョンをインストールしません:) まだ、有用な情報、ありがとう –