あなたの最初のbashスクリプトを書く方法?



導入
bashスクリプトを使用すると、LinuxとUnixシステム上のタスクの多くを自動化することができます.bashは強力で頑丈なスクリプト言語でLinuxコマンドとツールのパワーを兼ね備えています.
bashは様々なオペレーティングシステムで広く利用できます.多くの場合、bashはほとんどのLinuxシステムではデフォルトのコマンドインタプリタでもあります.
本稿では、あなたの最初のbashスクリプトを書く方法をあなたに教えます!

必要条件
始める前に、bash端末とテキストエディタが必要になります.
私は、デジタル上で展開されるUbuntu液滴を使用しています.あなたがフォローしたいならば、あなたは下記の私の紹介リンクを通してDigitaloceanにサインアップすることができます、そして、あなたは100ドルの自由なDigitalal信用を得ます:
Free $100 DigitalOcean Credit

スクリプトの計画
例として、以下のようなサーバに関する有用な情報を集めたスクリプトを書きます.
  • 現在のディスク使用
  • 現在のCPU使用
  • 現在のRAM使用
  • 正確なカーネルバージョンをチェック
  • それがあなたのニーズと一致するように機能を加えるか、取り除く機能によってスクリプトを調節するために自由に感じてください.

    スクリプトを書く
    まず最初に行う必要があるのは、新しいファイルを作成することです.sh 拡張.ファイルを作成しますstatus.sh 我々が作成するスクリプトが我々に我々のサーバーの地位を与えるように.
    ファイルを作成したら、お気に入りのテキストエディタで開きます.
    bashスクリプトの最初の行では、いわゆるShebang :
    #!/bin/bash
    
    Shebangが行うすべては、/bin/bash実行可能ファイルでスクリプトを実行するオペレーティングシステムを指示することです.

    コメントの追加
    人々がスクリプトが使用されるものを簡単に理解することができるように、若干のコメントを加えることから始めましょう.Shebangの直後に行うには、次のように追加できます.
    #!/bin/bash
    
    # Script that returns the current server status
    

    最初の変数の追加
    それから、進んで、スクリプトを通して使用するかもしれない若干の変数を加えましょう.
    bashの変数に値を割り当てるには、= サイン.たとえば、後で使用できるように、サーバーのホスト名を変数に格納しましょう.
    server_name=$(hostname)
    
    使用によって$() bashに命令を実際に解釈し、値を変数に代入します.
    もし変数をエコーするなら、現在のホスト名を見ます:
    echo $server_name
    

    最初の関数の追加
    bashで関数を作成するには、次の構造を使用する必要があります.
    function function_name() {
        your_commands
    }
    
    サーバ上の現在のメモリ使用量を返す関数を作成しましょう.
    function memory_check() {
        echo ""
        echo "The current memory usage on ${server_name} is: "
        free -h
        echo ""
    }
    
    関数のクイックランダウン:
  • function memory_check() { - このようにして関数を定義する
  • echo "" - ここでは、ちょうど新しい線を印刷します
  • echo "The current memory usage on ${server_name} is: " - ここではすべての小さなメッセージを印刷$server_name 変数
  • } - 最後に、これは機能を閉じる方法です
  • 関数が定義されたら、それを呼び出すために関数の名前を使います:
    # Define the function
    function memory_check() {
        echo ""
        echo "The current memory usage on ${server_name} is: "
        free -h
        echo ""
    }
    
    # Call the function
    memory_check
    

    機能追加の追加
    解決策をチェックする前に、私は上記から機能を使用して、いくつかの関数を自分で書くことに挑戦します.
    以下の関数を実行します.
  • 現在のディスク使用
  • 現在のCPU使用
  • 現在のRAM使用
  • 正確なカーネルバージョンをチェック
  • あなたがその情報を得るためにどのようなコマンドを使用する必要があるかわからない場合は、Googleを使用して自由に感じる.
    したら、準備ができたら、下にスクロールして、どのように我々はそれをした結果を比較してください!
    それを行うには、複数の正しい方法があることに注意してください!

    サンプルスクリプト
    最後の結果は次のようになります.
    #!/bin/bash
    
    ##
    # BASH script that checks:
    #   - Memory usage
    #   - CPU load
    #   - Number of TCP connections 
    #   - Kernel version
    ##
    
    server_name=$(hostname)
    
    function memory_check() {
        echo ""
        echo "Memory usage on ${server_name} is: "
        free -h
        echo ""
    }
    
    function cpu_check() {
        echo ""
        echo "CPU load on ${server_name} is: "
        echo ""
        uptime
        echo ""
    }
    
    function tcp_check() {
        echo ""
        echo "TCP connections on ${server_name}: "
        echo ""
        cat  /proc/net/tcp | wc -l
        echo ""
    }
    
    function kernel_check() {
        echo ""
        echo "Kernel version on ${server_name} is: "
        echo ""
        uname -r
        echo ""
    }
    
    function all_checks() {
        memory_check
        cpu_check
        tcp_check
        kernel_check
    }
    
    all_checks
    

    デバッグとテスト
    bashスクリプトをデバッグするには、スクリプトを実行するときに- Xを使用できます.
    bash -x ./your_script.sh
    
    または追加することができますset -x デバッグする特定の行の前に、- Xを設定すると、実行しているコマンドが端末に出力されるシェルのモードを有効にします.
    スクリプトをテストするもう一つの方法は、この素晴らしいツールを使うことです.
    https://www.shellcheck.net/
    ちょうどテキストボックスにコードをコピーして貼り付け、ツールはあなたのスクリプトを改善する方法についていくつかの提案を与える.

    もっと学ぶ
    bashスクリプトは素晴らしいです!あなたがdevops/sysopsエンジニア、開発者、または単にLinux愛好家であるならば、あなたは異なるLinuxコマンドを結合するためにbashスクリプトを使用することができて、退屈で反復的な毎日の仕事を自動化するので、より生産的で楽しいものに集中することができます!
    bashについての詳細は次のbash電子ブックをご覧ください.
    Introduction to Bash scripting eBook
    さえずりの上で私をタグ付けすることによって、私とあなたのスクリプトを共有してください