OSX「で開く」bashスクリプト


8

私はbashスクリプトを持っていますが、実際にはその多くが潜在的にあり、OSXのファインダーでファイルを開くことができるようにしたいと思っています。

これは本当に非常にシンプルなコンセプトですが、何らかの理由でbashスクリプトはファインダーの「プログラムから開く」ダイアログでグレー表示されます。

アプリとしてapplescriptやパッケージングを使用する方法はさまざまですが、これを理解することができなかったため、この簡単なタスクのためだけに別の言語を選択する必要はありません。 -誰かがスプーンでこれを行う方法を私に与えることができますか?

ありがとう!

回答:


11

不可能です。Launch ServicesはアプリケーションIDで機能し、bashスクリプトにはそれらがありません。

Automatorを使用してラッパーアプリケーションを作成する必要があります。

  1. Automatorを起動
  2. アプリケーションを選択
  3. シェルスクリプト実行アクションを探し、それを右側に追加します。
  4. 入力を引数として渡す
  5. そこにスクリプトを入れます
  6. どこかに保存

これがGrowlコマンドラインユーティリティを使用した私のバージョンです。

ここに画像の説明を入力してください

結果:

ここに画像の説明を入力してください


すべて~/Library/Preferences/com.apple.LaunchServices.plist変更すると、この変更が及ぼす影響を確認できます。

ここに画像の説明を入力してください

(「テスト」は、Automatorアプリケーションに付けた名前です)


ありがとう。少し回してみましたが、Automatorで作成したアプリを開いてみると、「シェルスクリプトの実行」でエラーが発生したと表示されます。アクションのプロパティを確認して、ワークフローを再実行してください。これは、私がしばらく見てきた中で最も役に立たないエラーメッセージについてです。
リッチな

@Richシェルスクリプトアクションの実行でデフォルトのスクリプトで動作しますか?それともそれでも?パスの入力設定を変更することを覚えていますか?アプリケーションをダブルクリックするか、ファイルをアプリケーションにドラッグするか、関連ファイルのみを開くことを試みますか?他の方法で起動するとどうなりますか?
ダニエルベック

ありがとう。catを呼び出すだけなので、デフォルトの出力からどのように出力されるかはわかりませんが、エラーではなかったようです。アプリが標準以外の場所からスクリプトを呼び出すのではなく、/ usr / local / binにスクリプトを作成し、実行しようとすると、シンボリックリンクのレベルが多すぎる(1 ?! )そのため、代わりにそこにスクリプトをコピーしただけで、動作するようです。ありがとう!
リッチな

1

ダニエルベックの指示にいくつかの変更を加えて、MacのChrome(Firefoxでも動作します)で開きたいURLファイルでこれを機能させました。

私が使用したスクリプトは次のとおりです。

sed 's/^URL=/URL=/' "$1" | grep -m 1 '^URL=' | sed 's/^URL=//' | tr -d '\r' | xargs open -a "Google Chrome"

これは、次のような典型的なURLファイルからURL =行を解析します。

[InternetShortcut]
URL=http://www.docircuits.com/pricing
IDList=
HotKey=0
IconFile=O:\Apps\Firefox\Data\profile\shortcutCache\4t0JW4mY1qRPhiYz1fY3dw==.ico
IconIndex=0

Automatorスクリプトを〜/ Libraryディレクトリのような場所に保存します。私はOpenUrl.appを呼び出しました。

次に、どこかにあるurlファイルに移動して、「情報を見る」ポップアップを開きます。Open WithコマンドをOpenUrl.appスクリプトに変更します。1つだけでテストするか、[すべて変更...]をクリックします。最初にクリックしたときにエラーが発生しましたが、2回目には機能しているようです。

これを開発すると、「シェルスクリプトの実行」エラーが発生しましたが、それはスクリプトの実際のエラーが原因でした。Danielのスクリプトの主な問題は、開こうとしたファイル名のスペースを処理しないことです。


-1

リポジトリreattach-to-user-namespaceからまたはとともに使用しbrew install reattach-to-user-namespaceます。これはシエラで動作しますが、他のOSについてはわかりません。

インストールしたら、次のようにbashスクリプトで使用します。

ユーザーの名前空間に再接続するa_cool_file.pngを開く


これは質問に答えていないようです。OPは、Finderの「プログラムから開く」機能を使用して、Bashスクリプトでファイルを開きたいと考えています。TmuxおよびScreenでクリップボードサポートを提供することは、特にTmuxまたはScreenが関与していることさえ示されていないため、それを助けません。
8ビットツリー2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.