1. ホーム
  2. bash

[解決済み] Bashのファイル拡張子は何ですか?

2022-10-30 04:53:05

質問

テキストエディタで bash スクリプトを書きましたが、bash スクリプトとして実行できるようにするには、どのような拡張子で保存すればよいのでしょうか。 私は理論的にはsshサーバーを開始するスクリプトを作成しました。スクリプトをクリックすると実行されるようにするにはどうしたらよいでしょうか。私はOS X 10.9.5を使用しています。

どのように解決するのですか?

他の回答とは異なりますが、一般的な慣習として .sh 拡張子を使うという共通の慣習があります。拡張子は使わないほうがいいのです。ということを伝えることができるという利点があります。 foo.sh がシェルスクリプトであることを見分けることができるという利点はごくわずかであり、柔軟性を失うことでそれを代償にしているのです。

bashスクリプトを実行可能にするためには shebang という行が必要です。

#!/bin/bash

を使用し chmod +x コマンドを使用して、システムがそれを実行可能なファイルとして認識するようにします。そして、このファイルを $PATH . スクリプトの名前が foo という名前であれば、シェルプロンプトから次のようにタイプして実行できます。 foo . また、カレントディレクトリにある場合は (一時的なスクリプトではよくあることです)、次のように入力することもできます。 ./foo .

シェルもオペレーティングシステムも、ファイル名の拡張子部分には全く注意を払いません。それは単に名前の一部なのです。そして ではなく をつけることで、それを使う人 (ユーザや他のスクリプト) が、それがシェルスクリプト (sh, bash, csh など)、Perl, Python, Awk スクリプト、またはバイナリ実行ファイルであろうと、 それがどのように実装されているかを気にしなくてよいようにします。このシステムは、解釈されたスクリプトまたはバイナリ実行ファイルを、それがどのように実装されているかを知ることも気にすることもなく呼び出すことができるように、特別に設計されています。

UNIX ライクなシステムは、純粋にテキストによるコマンドライン インターフェースで始まりました。KDE や Gnome のような GUI は後から追加されました。GUI デスクトップ システムでは、通常、プログラムを参照するアイコンをダブルクリックするなどして、プログラムを実行できます (スクリプトであるかバイナリ実行ファイルであるかにかかわらず)。通常、この方法ではプログラムが表示する出力は破棄され、コマンドライン引数を渡すこともできません。これは、シェルプロンプトから実行するよりもはるかに柔軟性に欠けます。しかし、一部のプログラム (主に GUI クライアント) では、この方法がより便利な場合があります。

シェルスクリプトは、GUI からではなく、コマンドラインから学ぶのが最善です。

(いくつかのツール を行う はファイル拡張子に注意を払います。たとえば、コンパイラーは通常、コードが書かれた言語を判断するために拡張子を使用します。 .c C言語の場合 .cpp はc++、など。この規約は実行可能ファイルには適用されません)。

UNIX (および UNIX に似たシステム) は Windows ではないことに留意してください。MS Windows は一般に、ファイルを開く/実行する方法を決定するためにファイルの拡張子を使用します。バイナリ実行可能ファイルには .exe という拡張子が必要です。Windows に UNIX ライクなシェルがインストールされている場合、Windows を設定して .sh 拡張子をシェルスクリプトとして認識し、それを開くためにシェルを使うように Windows を設定することができます; Windows には #! の規約がありません。