回答:
単一のステップ-「シェルスクリプトの実行」でAutomatorワークフローを作成できます。
次にFile > Save As
、ファイル形式を「アプリケーション」に変更します。アプリケーションを開くと、シェルスクリプトステップが実行され、コマンドが実行され、完了後に終了します。
これへの利点は、それはだで実際に行うのは簡単で、あなたは非常に簡単に、その後(STDINに、または引数としてのいずれか)シェルスクリプトの入力に渡し、ユーザー入力(たとえば、ファイルの束を選択する)を取得することができます。
(Automatorは/Applications
フォルダにあります!)
open -a SomeAppThing.app --args --etc=2
それを行うことによってアプリケーションを開くならば、それは集中するはずです。または、Applescript(eg osascript -e 'tell application "Google Chrome" to activate'
)を使用して焦点を合わせることができます
ターミナルウィンドウが必要ない場合は、シェルスクリプトExample
を作成してファイル名に移動するだけで、実行可能ファイルをアプリケーションにすることができますExample.app/Contents/MacOS/Example
。この新しいアプリケーションは他のアプリケーションと同じようにドックに配置して、クリックするだけで実行できます。
注:アプリの名前はスクリプト名と正確に一致する必要があります。したがって、最上位ディレクトリはExample.app
であるContents/MacOS
必要があり、サブディレクトリ内のスクリプトはと命名されExample
、スクリプトは実行可能でなければなりません。
ターミナルウィンドウを表示する必要がある場合は、簡単な解決策はありません。あなたはおそらくApplescriptで何かをすることができますが、それはあまりきれいではありません。
example.sh.app
、それだけではなく、本当にそうでなければなりませんexample.app
。これらが一致しない場合、破損したアプリに関する警告が表示されます
.app
その構造で終わるフォルダーを作成すると、そのフォルダーは実行可能なアプリケーションとして扱われます。Finderでそのフォルダの内容を確認するには、フォルダを右クリックして[パッケージの内容を表示]を選択する必要があります(フォルダをダブルクリックするとアプリケーションが実行されるため)。ターミナルでは、フォルダのように見えます。(Finderでフォルダの名前を.appだけに変更できるかどうかはわかりません。ターミナルで名前を変更する必要があるかもしれません。)
OSX Mavericksの場合:
シェルスクリプトを実行可能にします。
chmod +x your-shell-script.sh
スクリプトの名前を変更して、.app
サフィックスを付けます。
mv your-shell-script.sh your-shell-script.app
スクリプトの名前を.sh
サフィックスに戻します。
mv your-shell-script.app your-shell-script.sh
ドックでスクリプトをクリックすると、ターミナルウィンドウがポップアップしてスクリプトを実行します。
おまけ:スクリプトが完了したときにターミナルを閉じるにはexit 0
、最後に追加して、ターミナル設定をこのSO回答で行うように「正常に終了したらシェルを閉じる」に変更します。
私はこれが古いことを知っていますが、他の人に役立つ場合は:
スクリプトを実行する必要があり、ターミナルをポップアップさせて結果を確認できるようにするには、Abyss Knightが言ったように、拡張子を.commandに変更します。それをダブルクリックすると、ターミナルウィンドウが開いて実行されます。
ただし、オートマトンまたはappleScriptから実行するには、これが必要でした。したがって、これを使用して新しいターミナルを開くには、「シェルスクリプトの実行」から実行したコマンドは「open myShellScript.command」で、新しいターミナルで開きました。
スクリプトが実行可能で、拡張子がない場合は、そのままDockの右側(ドキュメント側)にドラッグできます。エディターを開く代わりに、クリックするとターミナルウィンドウで実行されます。
拡張子(foo.shなど)が必要な場合は、Finderのファイル情報ウィンドウに移動して、その特定のスクリプトのデフォルトアプリケーションを変更します(TextEdit、TextMate、コンピュータに設定されているデフォルトのすべて) .shファイル)をターミナルに送信します。その後、テキストエディタで開くのではなく、単に実行されます。ここでも、Dockの右側にドラッグする必要があります。
このスレッドは役に立つかもしれません:http : //forums.macosxhints.com/archive/index.php/t-70973.html
言い換えれば、.command拡張子を付けて名前を変更するか、シェルを実行するAppleScriptを作成できます。
joeが述べたように、シェルスクリプトを作成してから、シェルスクリプトを呼び出すためのapplescriptスクリプトを作成すると、これを実現でき、非常に便利です。
お気に入りのテキストエディタでシェルスクリプトを作成します。次に例を示します。
mono "/Volumes/Media/~Users/me/Software/keepass/keepass.exe"
(これは、モノフレームワークを使用して、w32実行可能ファイルを実行します)
私の例では「StartKeepass.sh」のシェルスクリプトを保存します
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で作成したシェルスクリプト(完全パス)です(ダイレクトコマンドを実行することもできます。シェルスクリプトを省略して、ここでモノコマンドを実行することもできます)。user name
-特定のユーザーとしてコマンドを実行することをAppleScriptに宣言します"<enter username here>
-元のユーザー名(引用符を使用)で置き換えます(例: "josh")password
-あなたのパスワードをapplescriptに宣言する"<enter password here>"
-「mypass」のように、パスワードを引用符で置き換えます。with administrative privileges
-管理者として実行することを宣言しますApplescriptをfilename.scptとして保存します。私の場合はRunKeepass.scpt
名前を付けて保存...あなたのapplescriptとファイル形式をアプリケーションに変更すると、私の場合はRunKeepass.appになります
アプリファイルをアプリフォルダーにコピーする
スクリプトエディタで:
do shell script "/full/path/to/your/script -with 'all desired args'
」
アプリケーションバンドルとして保存します。
スクリプトの効果を得ることが目的であれば、これは問題なく機能します。STDOUTまたはSTDERRは表示されません。