コマンドラインスクリプトを実行するにはどうすればよいですか?


17

Windowsでは、.batファイルを作成できます。ダブルクリックすると、すべての行がコンソールに入力されたかのように解釈されます。

OS Xでは、どのファイルまたはプログラムを使用する必要がありますか?ファイルを書き込みたい場合;

 echo hello world

このファイルをダブルクリックして、コンソールで実行したい。どうすればいいの?


ダブルクリックしたときにファイルを実行する必要がありますか、またはファイル名を入力してファイルを実行するだけですか?
フィルM


ダブルクリックしたファイルの方が高速です:)
ロドリゴ

回答:


24

OS Xの端末基盤は、Linuxで使用されているものと同じです。特に探しているものは、一般に「シェルスクリプト」と呼ばれます。

Terminal.app(にある/Applications/Utilties)を開いたときのデフォルトのシェルはbashシェルです。

OS Xには、.command拡張機能ではなく、Finderやその他のアプリケーションからアクセスできるビルトインシェルハンドラがありますが、イライラすることはありません.sh。ただし、Finderを介して実行するようにスクリプトを設定することはさらに複雑です。

  1. Hello Worldアプリケーションを作成した例のように、単純なシェルスクリプトを作成します。
#!/bin/bash
echo "Hello World"
  1. このファイルをとして保存しますHelloWorld.command

  2. このファイルに実行許可を与えます。chmod u+x HelloWorld.commandそれを行う必要があります。

  3. Finderでこのファイルを保存したディレクトリを開きます。次に、HelloWorld.commandファイルをダブルクリックします。

これにより、ターミナルが開き、スクリプトが実行されます。コンピューター上の出力は次のとおりです。

$ /Users/jason/Applications/HelloWorld.command; 出口;
Hello World
ログアウト

[処理完了]

このファイルを実行する別の方法は、まだターミナルにいる間に./HelloWorld.command、ファイルと同じディレクトリにいると仮定するだけです。

これを行うと、出力がはるかに単純になります。

jason-macアプリケーション$ ./HelloWorld.command
Hello World
jason-macアプリケーション$

OS Xでシェルスクリプトを作成して実行しました!


余談ですが、OS Xがこれを「.sh」ファイルではなく「.command」ファイルで行うのはばかげています。はい、これを変更することは可能ですが、.commandがすでに存在するため、これが私の推奨される解決策です。
ジェイソンサラズ

起動サービスデータベースに.shを挿入する方法を質問しますか?
bmike

あなたは明らかにアイデアを持っていたので(考えは私の心を越えませんでした)、あなたはそれをすることを歓迎します。
ジェイソンサラズ

... IMAはすべて、それは自分だ上でそれを聞いて、ここに行く-私はあなたからアイデアを得た
bmike

chown: u+x: Invalid argument
ロドリゴ

4

Windowsのコンソールまたはコマンドプロンプトに相当するのは、/ Applications / Utilities /にあるターミナルアプリです

DOS(または最近彼らが呼んでいるもの)に相当するものは「bash」です

Windowsのバッチファイル(.bat)に相当するのは、シェルスクリプト(.sh)です

Googleで「bash」「reference」を検索すると、残りの部分がわかります。Bash Cookbook(O'Reilly)を購入することもお勧めします。

具体的には、これは「hello world」スクリプトを取得するためにターミナルウィンドウに入力するものです。

ファイルを作成するには:

    echo "echo hello world" > file.sh

ファイルを実行可能にする権限を変更するには:

    chmod 755 file.sh

スクリプトを実行するには:

    ./file.sh

Finderからダブルクリックできるようにするには、ファイルを右クリック(またはcontrolキーを押しながらクリック)して[情報を見る]を選択し、[アプリケーションから開く]でターミナルアプリを選択します。または、.sh拡張子の代わりに.command拡張子を使用できます。


2

AppleScriptを見てみたいと思うでしょう。Sal Soghoianによるこのは、多くの人にAppleScriptの注目すべきと見なされています。

ユーザーがMacアプリを自動化するもう1つの良い方法は、Automatorを使用することです。試してみることもできます。お役に立てれば。

更新

Unixシェルスクリプトのようなものを探しているようです。この2つの チュートリアルはまともであり、基本をカバーしているようです。


私はこれを見ましたが、AppleScriptは端末スクリプトではありません。私はあなたができると思う:「ターミナルに行き、xコマンドを書く」。さて、.batスタイルではありません(もう少し難しい)
ロドリゴ

Unixシェルスクリプトが探しているもののようです。
クリスチャンコレア

0

シェルスクリプト。Ask Differentは詳細を議論するのに適した場所ではないと思いますが、ここに非常に詳細なガイドがあります:http : //tldp.org/LDP/abs/html/index.html

Mac OS Xは10.5からUNIX認定を受けています(右?)

(それほど複雑ではありませんが、Mac OS XのAutomatorは非常に強力です。AppleScriptEditorも同様です。どちらもシェルスクリプトやその他のコマンドをプログラムで実行し、Launchpadまたは共有用の便利な.appバンドルにまとめます。友達)


私がリンクしたガイドの紹介から:「スクリプトと呼ばれるシェルプログラムは、システムコール、ツール、ユーティリティ、およびコンパイルされたバイナリを「結合」することにより、アプリケーションを構築するための使いやすいツールです。 UNIXコマンド、ユーティリティ、およびツールは、シェルスクリプトによる呼び出しに使用できます。それが十分でない場合、テストやループ構造などの内部シェルコマンドは、スクリプトにさらなる能力と柔軟性を与えます。
Swizzlr

「適切な場所」では、シェルスクリプトについては、スーパーユーザーで
。superuser.com/ questions / tagged / shell


-2

Macの場合、.shファイル(シェルスクリプト)


ただし、ファインダーから呼び出す場合は、を使用します.command.shファインダーからの未処理のファイルタイプです(デフォルト)。
ジェイソンサラズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.