Shellプログラミングの詳細:前言

4544 ワード

プログラミング言語はますます多くなり、C、C++、perl、php、Java......プログラマーを困らせている.どの言語にもメリットがあります.Unix/Linuxプラットフォームでは、Shellスクリプトが非常に広く使用されています.その理由は、賢い人たちが多くのツールパッケージを書いているため、これらのツールの基礎の上で、自分のニーズを実現することができます.shellプログラミングを理解する前に、shellの背景を理解します.
0.1 shellの背景の最初の重要なshellはBourne shell(このように命名するのはこのshellの発明者Steven Bourneを記念するためである)であり、1979年に最初に流行したUnixバージョン7のリリース時にBourne shellの使用を開始する.Bourne shellのマスター名はshであるため、後日人々はshをBourne shellの主な識別名とする.現在Unix上のshellには多くの種類があるが、Bourne shellの地位は今でも変わっていない.多くのUnixシステムではshを重要な管理ツールとして使用する.
最初に広く流行したshell変種はC shellである.C shellは主にBSD版のUnixシステムに添付されている.著者はバークリー大学のビル・ジョーですC shellは主に文法がC言語と似ていることから名付けられた.これによりUnixシステムのプログラマーは、Cシェルを学ぶ際に、かなり便利で容易であると感じられる.
以上の二つはshellの二大主流を形成し、その後の変種shellの多くはこの二つのshellの利点を奪った.例えばKorn、tcsh、bash.
Bash shellはGNU計画の重要なツールソフトの一つであり、GNU作業システムにおける標準的なshellでもある.Bashはshに適合するため、多くの初期に開発されたBourne shellはbashで動作し続けることができる.今インストールしたRedhat LinuxはBashを完全に使用しています.(/bin/sh ->/bin/bash)
Bashは1988年に誕生し、最初の著者はBrian Foxで、Chet Rameyは1989年に加入し、現在公式のメンテナンス者はChet Rameyであり、彼の仕事はbashの機能を絶えず強化することである.1995~1996年にbash 2.0が発売され、それ以前に広く使用されていたバージョンは1.14であった.xは、多くの新しい機能と、より良い適合性を追加しました.もちろん、Bashは完全に無料で、Open Sourceの一員で、オリジナルコードはすべてオープンしています.
くだらないことは言わないで、多くの人はまっすぐ行くのが好きで、それではあなたに先に経典の“Hello、World!”を見させます!
0.2 Hello World! どんなによく知っている言葉だろう.c言語では:
main()
{
        printf("");
}
 

シェルを使うと何になりますか?簡単です.プロンプトに直接入力します.
BeautifierPlugin Error: Unable to handle "bash"syntax.
echo "Hello World!";

ファイルに書いてあるならsh:
BeautifierPlugin Error: Unable to handle "bash"syntax.
#!/bin/sh
#this is the first script
echo "Hello World!";

こんなに簡単なのに君に話さなければならないのか.もちろん、これは定例の公式にすぎません.ハロー、Worldか、なかなか難しくない.ここで説明する必要があります.
  • 良い習慣を身につけて、shellファイルは“.sh”を接尾辞として
  • 注記「#」先頭
  • を使用
  • テキストの最初の行は必ず#!/bin/sh(#!後はshellのあるパスを使用)
  • 編集したテキストを実行するにはchmod+x helloを使用します.sh
  • プログラムを実行します./hello.sh

  • shellでは、セミコロン';'1つのコマンドの終わりを表し、同じ改行でもコマンドの終わりを表します.次のように、1行にいくつかのコマンドを書くことができます.
    BeautifierPlugin Error: Unable to handle "bash"syntax.
    #!/bin/sh
    cd /home/winter ; echo "Hello World!" ;
    

    次を見て、私たちはすぐにhello worldを超えます.
     
    0.3がHello Worldを超えた例は少し一般的ではないようだ.ファイルを編集するhello 2.sh
    BeautifierPlugin Error: Unable to handle "bash"syntax.
    #!/bin/sh
    #hell2.sh --        。
    if [ $# -ne 1 ] ;
    then
       echo "Usage: $0 username";
       exit 1;
    else
       echo "Hello World, Hello $1 !";
    fi
    

    これは分かりましたか.ちょっと面白いかな?以下に説明します.
  • [...]はテスト用です.
  • -neは
  • に等しくないことを示す.
  • ifは判断に用いられ、then elseと併用され、fiで
  • を終了する.
  • $#はパラメータ個数
  • を表す.
  • $0はスクリプト名
  • を表します.
  • $1は、最初のパラメータを表します.

  • 全体的な意味は次のとおりです.
    パラメータを検出する、パラメータとして名前が入力されていなければUsage情報を出力し、そうでなければHello Word,Hello ursernameを印刷する.入力を試します:($はプロンプト)
    BeautifierPlugin Error: Unable to handle "bash"syntax.
    $ chmod +x hello2.sh
    $ ./hello2.sh
    Usage: hello2.sh username
    $ ./hello2.sh Winter
    Hello World, Hello Winter!
    

    いわゆる奇技淫巧と呼ばれる使い方を見てみましょう.Beautifierplugin Error:Unable to handle"bash"syntax.
    $ echo "the resutl is $(( 100 / 25 ))"
    the resutl is 4
    

    Beautifierplugin Error:Unable to handle"bash"syntaxもあります.
    find ./ -type f -exec chmod 777 {} /;
    

    焦らないでください.これらはおかずの一皿だけで、もっと面白いのは後ろで、まず本の構造を見てください.
    0.4冊の本の構造本書は3つの部分に分かれており、各部分の重点が異なる.
    第一部分はShell基礎で、主にShell命令について話します.shellコマンドに詳しいなら、この部分を省略してもいいですが、awkとsedの部分はよく勉強してほしいです.awkとsedは海外の大学で1学期、専門の授業を受けなければならないそうです.
    このセクションには6章が含まれており、ほとんどのshellコマンドを基本的にカバーしており、各コマンドには詳細な説明があります.この部分は、Unix/Linuxの一般的なコマンドのマニュアルとして使用できます.私がこんなに詳しく書いたのも、これから自分で参考にしてほしいからです.もちろん、ここのシステム管理のコマンドは、プログラミングにとってアプリケーションが少し少ないので、詳しく記録していません.
    第1部ではawkとsedにも重点を置いています.これは私が普段最も使っている2つのコマンドです.ツールと言うべきです.もしあなたがテキストを処理するなら、彼らは本当に虎将です.軽蔑しないでください.
    第2部では、プログラミングを本当に説明し始めました.以前学校でコンピューター言語を勉強したことがあれば、basicでもいいです.概念があれば.shellプログラミングアーキテクチャには特別な点は多くありません.その利点は、各部分のリソースを統合することです.
    このセクションでは,プログラミングにおいて,アーキテクチャ全体を構築するための基礎となるループ,条件枝分かれ,コマンドラインパラメータなどを主に紹介する.shellでオブジェクト向けにプログラミングしたり、モデルプログラミングをしたりしないでください.できるかもしれませんが、この本が教えてくれるわけではありません.ここの操作は最も基本的な最も簡単で、流水線の設計と操作です.最も簡単なのは往々にして最も安定している.
    第3部はいくつかの高級なテーマで、前の2部はすでにあなたに多くのことをすることができて、もしあなたがshellのもっと多くの機能を使うことを望んで、もっとストーブの火の純青を望んでいるならば、あなたは第3部をよく見てください.シェルを真のプログラミング言語と見なす方法を知っていますこのセクションでは、主にサブ関数、shellスクリプトデバッグ技術、正規表現などについて説明します.