176

Mac OSX Dock から実行するシェル スクリプトを設定するにはどうすればよいですか? ショートカットを作成するだけで、エディターでファイルが開くようです。編集用に開くのではなく、実行するように指示するためにどこかに設定する必要があるフラグはありますか?

4

10 に答える 10

207

「シェル スクリプトの実行」という 1 つのステップで Automator ワークフローを作成できます。

次にFile > Save As、ファイル形式を「アプリケーション」に変更します。アプリケーションを開くと、シェル スクリプト ステップが実行され、コマンドが実行され、完了後に終了します。

これの利点は、非常に簡単に実行できることです。ユーザー入力を非常に簡単に取得し (たとえば、多数のファイルを選択する)、それをシェル スクリプトの入力に渡すことができます (標準入力または引数として)。

(Automator はあなたの/Applicationsフォルダにあります!)

ワークフローの例

于 2008-11-11T16:47:04.680 に答える
54

ターミナル ウィンドウが必要ない場合は、シェル スクリプトを作成Exampleして filename に移動するだけで、任意の実行可能ファイルをアプリケーションにすることができますExample.app/Contents/MacOS/Example。この新しいアプリケーションは、他のアプリケーションと同じようにドックに配置して、クリックするだけで実行できます。

注:アプリの名前は、スクリプト名と正確に一致する必要があります。したがって、最上位ディレクトリはである必要がありExample.appContents/MacOSサブディレクトリ内のスクリプトの名前Exampleは である必要があり、スクリプトは実行可能である必要があります。

端末ウィンドウを表示する必要がある場合、簡単な解決策はありません。おそらく Applescript で何かを行うことができますが、それはあまりきれいではありません。

于 2008-11-11T16:28:24.220 に答える
41

OSX Mavericks の場合:

  1. シェル スクリプトを作成します。
  2. シェル スクリプトを実行可能にします。

    chmod +x your-shell-script.sh
    
  3. スクリプトの名前を変更して、.app接尾辞を付けます。

    mv your-shell-script.sh your-shell-script.app
    
  4. スクリプトを OSX ドックにドラッグします。
  5. スクリプトの名前を.shサフィックスに戻します。

    mv your-shell-script.app your-shell-script.sh
    
  6. Finder でファイルを右クリックし、[情報を見る] オプションをクリックします。
  7. ウィンドウの下部で、ターミナルで開くようにシェル スクリプトを設定します。

Dock のスクリプトをクリックすると、ターミナル ウィンドウがポップアップしてスクリプトが実行されます。

ボーナス:スクリプトが完了したときにターミナルを閉じるには、最後に追加し、ターミナル設定を変更して、この SO answerexit 0で行うように「正常に終了した場合はシェルを閉じる」ようにします。

于 2014-01-10T15:50:11.507 に答える
19

私はこれが古いことを知っていますが、他の人に役立つ場合:

スクリプトを実行する必要があり、端末をポップアップして結果を確認できるようにする場合は、Abyss Knight が言ったように実行して、拡張子を .command に変更します。それをダブルクリックすると、ターミナル ウィンドウが開き、実行されます。

ただし、automator または appleScript から実行するにはこれが必要でした。したがって、これを取得して新しいターミナルを開くには、「シェルスクリプトを実行」から実行したコマンドは「open myShellScript.command」であり、新しいターミナルで開きました。

于 2010-05-04T04:34:07.243 に答える
7

スクリプトが実行可能で、拡張子がない限り、Dock の右側 (ドキュメント側) にそのままドラッグできます。クリックすると、エディターを開く代わりにターミナル ウィンドウで実行されます。

拡張子 (foo.sh など) が必要な場合は、Finder のファイル情報ウィンドウに移動し、その特定のスクリプトの既定のアプリケーションを変更できます (TextEdit、TextMate、コンピューターに設定されている既定のアプリケーション)。 .sh ファイル) をターミナルに転送します。その後、テキスト エディターで開く代わりに実行されます。繰り返しますが、Dock の右側にドラッグする必要があります。

于 2008-11-11T16:42:30.010 に答える
6

スクリプト エディタで:

do shell script "/full/path/to/your/script -with 'all desired args'"

アプリケーション バンドルとして保存します。

スクリプトの効果を得ることだけが目的である限り、これは問題なく機能します。STDOUT または STDERR は表示されません。

于 2008-11-21T21:01:23.380 に答える
5

joe が述べたように、シェル スクリプトを作成してから、シェル スクリプトを呼び出すための applescript スクリプトを作成すると、これが実現され、非常に便利です。

シェルスクリプト

  1. 好みのテキスト エディターでシェル スクリプトを作成します。たとえば、次のようにします。

    mono "/Volumes/Media/~Users/me/Software/keepass/keepass.exe"

    (これにより、mono フレームワークを使用して w32 実行可能ファイルが実行されます)

  2. 私の例では「StartKeepass.sh」というシェルスクリプトを保存します。

アップルスクリプト

  1. AppleScript エディターを開き、シェル スクリプトを呼び出します。

    do shell script "sh /Volumes/Media/~Users/me/Software/StartKeepass.sh" user name "<enter username here>" password "<Enter password here>" with administrator privileges

    • do shell script- 外部シェルコマンドを呼び出すapplescriptコマンド
    • "sh ...."- これは、ステップ 1 で作成したシェル スクリプト (フル パス) です (直接コマンドを実行することもできます。シェル スクリプトを省略して、ここで mono コマンドを実行することもできます)。
    • user name-特定のユーザーとしてコマンドを実行することをapplescriptに宣言します
    • "<enter username here>-ユーザー名に置き換えます(引用符を付けます)ex「josh」
    • password- あなたのパスワードをapplescriptに宣言します
    • "<enter password here>"- あなたのパスワードに置き換えます (引用符を付けてください) ex "mypass"
    • with administrative privileges- 管理者として実行することを宣言します

.APP を作成する

  1. AppleScript を filename.scpt として保存します。私の場合は RunKeepass.scpt

  2. as... として保存し、ファイル形式をアプリケーションに変更すると、私の場合は RunKeepass.app になります。

  3. アプリ ファイルをアプリ フォルダーにコピーします。

于 2011-12-23T04:14:45.167 に答える
5

このスレッドが役立つと思います: http://forums.macosxhints.com/archive/index.php/t-70973.html

言い換えると、.command 拡張子を付けて名前を変更するか、AppleScript を作成してシェルを実行することができます。

于 2008-11-11T16:27:45.530 に答える