[解決済み] Bashのファイル拡張子は何ですか?
質問
テキストエディタで 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 には
#!
の規約がありません。
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み】Bashでファイル名と拡張子を抽出する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Ansibleで新しいユーザーとパスワードを作成する
-
[解決済み] スクリプトの実行に関連したファイルの参照
-
[解決済み] 実行中のBASHスクリプトのパスを決定する [重複].
-
[解決済み] set -u` による Bash による空の配列展開
-
[解決済み] シェルスクリプトからウェブブラウザを起動する方法は?
-
[解決済み] bash で文字列をエスケープするコマンド
-
[解決済み] 接頭辞・接尾辞を使った名前の変更方法について教えてください。
-
[解決済み] Unixで、カレントディレクトリ以下をすべて削除するにはどうしたらいいですか?
-
[解決済み] 指定された時間/日付まで眠る
-
[解決済み] グレースフル・シャットダウンプロセスのシグナルはどのような順番で送ればよいのですか?