これはUNIXでの最初の質問です。
2日前、私はシェルスクリプトを使い始めました。
しかし、質問があります。シェルスクリプトは特定のシェルのための特別なプログラミング言語ですか?
答え1
Bashは言語ですscripting
:
ウィキペディア:
スクリプト言語またはスクリプト言語は、人間のオペレータが1つずつ実行することができるタスクを自動的に実行するソフトウェア環境用に作成されたプログラムであるスクリプトの作成をサポートするプログラミング言語です。 [...]
「スクリプト」という用語は通常、小規模プログラム(最大数千行のコード)に使用されます。
スクリプトは速くて汚いことが多いです。あなたの人生をより簡単にするbashスクリプトを教えてください。そして、言語を「プログラミング」することは、はるかに多くの考えと事前の考慮を意味します。 「プログラミング」言語の利点は、一般的に言語が速く、必要に応じて低レベルの操作をより制御できることです。
「プログラミング」言語は通常、コードが長い間使用されているシナリオで使用されます。何かをすばやく作成して再度使用したくない場合は、「スクリプト」言語が適しています。
興味深い記事に会うことができますここ。
答え2
たとえば、コマンドがわかっている場合は、そのコマンドをls
入力してEnterキーを押すと、シェルはプログラム(ls)がどこにあるかを知り、それを呼び出して結果を表示します。これは「非スクリプト」シェルの使用です。
ただし、A、B、C、Dなど、これらのコマンドのいくつかを順番に注文して(順番に)実行可能ファイルに入れると、プログラムが生成されます。プログラムには名前と場所があるので、参照して呼び出すことができます。コードがあるので、CPUで一度に1つの命令を実行できます。
(たとえば、Cソースコードのように、プログラムはコンパイルされていないためスクリプトになりますが、それでもプログラムです。)
つまり、ある意味では、コンピュータに何をすべきかを指示しているので、この時点ですでにプログラミングをしているのです。
さらに、何でも入力して同時に動作することは期待できないため、非常に基本的なレベルでプログラミング言語を使用しています。コンピュータはあなたが書いたものと正確に一致します。活動。
あなたが言う方法についての規則があり、コンピュータがこれらのものに反応する方法に関する規則があります。
つまり、「プログラミング」をすれば、一般的に命令を一緒に積むよりも表現力のあるものを考えることになります。少なくとも分岐(if ... then ... else
)、繰り返し(ループ:while
などfor
)、その他いくつかの点が必要です。でも大丈夫です。スクリプト言語にはこれらの機能とそれ以上の機能があるためです。
はい、シェルにはさまざまな言語がありますが、いくつかは慣習(なぜ良い言い方を変えるのか)または以前のバージョン(またはいくつかの標準)との互換性のためにかなり重複する可能性があります。