反復的なタスクの自動化は、Bash 開発者に喜びをもたらす傾向があります。無限のコマンドを何度も入力する代わりに、スクリプトは単純に作業を反復的に実行します。 Bash はそのような自動化に最適です。このシリーズをきっかけに始めましょう!
Bash 自動化 とは何ですか?
Bash シェルは、反復的なタスクを徹底的に自動化できる強力な Linux シェルです。 Bash Linux シェルは、DevOps エンジニア、データベース エンジニア、テスト エンジニアにとって同様に第一の選択肢であるだけでなく、ユーザーはゆっくりと学習し、向上し続ける Bash スキルから日々恩恵を受けることができます。 Bash は、使い続けることで成長するスクリプトおよびコーディング言語でもあります。私は 2012 年から Bash で積極的にコーディングを行っており、それよりもずっと長い間 Bash を使用しています。
Bash は、さまざまなアプリケーション ドメインやユースケースにも適しています。たとえば、ビッグ データの処理に簡単に使用できますが、驚くべきことに、その中で利用できる無数のテキスト処理ツールや、簡単にインストールできるパッケージとして利用できるため、このタスクに非常に適しているようです。また、バックアップやデータベースのスケジュールとメンテナンス、大規模ファイル ストレージ ソリューションの処理、Web サーバーの自動化などにも非常に適しています。
私が気づいたことの 1 つは、次の問題が発生したときに、検索エンジンや Stackoverflow のさまざまな Web サイトで少し調べれば、すぐに問題の解決策が見つかるだけでなく、成長して学ぶ機会も得られるということです。これは、エディターを学習する人に非常によく似た経験です
vi
同じことが当てはまります。問題が発生したときはいつでも、解決策はすぐ近くにあります。
このミニ シリーズは 3 つのパートで構成されており、その第 1 部では Bash の自動化とスクリプトの基本について説明します。
シバン!
一体どんなタイトルなのか気になる方もいるかもしれません。そして、経験豊富な Linux 開発者と話している場合を除いて、あなたは正しいでしょう。彼らはせいぜい微笑むだろう。それは、よく書かれた Bash スクリプトの最初の 2 文字は常に「Shebang!」になるからです。
文字は 2 つあります。
#!
これはスクリプトの先頭に置くことができ、手元のスクリプトを処理するためにどのインタプリタが使用できるか、使用すべきか、使用されるかをシェルに示します。たまたま、この シンボル 全体が全体として シバンと 呼ばれています。
したがって、前のステートメントを拡張すると、適切に作成された Bash スクリプトの最初の行は次で始まる必要があります。
#!/bin/bash
シェルに指示します (どのシェルが使用されていても、たとえば
bash
または
sh
または
zsh
) バイナリが必要であること
/bin/bash
(Bash シェル) を使用してこのコードを実行します。
小さなスクリプトを定義して、これを実践してみましょう。
test .sh
次のように:
#!/bin/bash
echo ‘こんにちは、CloudSavvyIT 読者の皆さん!’
このスクリプトは、お気に入りのテキスト エディターを使用して作成できます。できれば、 vi 、 vim 、 nano などの等幅フォントのみを使用するエディター、または Linux デスクトップのプレーン テキスト ベースのエディターであり、できれば OpenOffice などのワード プロセッサーのようなものは避けてください。 Writer など。余分な不要なバイナリ データや文字をスクリプトに書き込む可能性があります。言い換えると;プレーンテキストを使用する必要があります。
このスクリプトを定義したら、コマンド ラインで
chmod +x test.sh
を実行して実行可能にします。その後、名前の先頭に
./
:
./test.sh
を付けて呼び出すだけでスクリプトを開始できます。
入力パラメータ
スクリプトを書き始めるとすぐに、入力パラメータをスクリプトに渡したいと思うでしょう。そのための 1 つの方法は、Bash でデフォルトで使用できる単純な位置パラメータを使用することです。次のように定義したサンプル スクリプト
test2.sh
を見てみましょう。
#!/bin/bash
エコー「${1}」
ここでは、位置パラメータ
${1}
を使用しました。この変数は、引用符が使用されない限り、スクリプトに渡された最初の単語 (デフォルトではスペースで区切られている) を反映します。これがどのように機能するかを見てみましょう:
chmod +x test2.sh
を使用してスクリプトを再度実行可能にした後、同じことを実行し、最初の位置パラメータ (
${1}
) として 1 つの単語
hello
を渡します。その結果、
hello
がエコーで返されます。
これは、スクリプトの開始時に、変数
${1}
(変数名を常に引用符で囲むことをお勧めしますが、
$1
) が最初の位置パラメーターの値に設定されているためです。スクリプト名の後の最初の単語または引用符で囲まれた文字列。
次に
hello world
を渡しましたが、これは
hello
のみをエコーして返しました。理由は単純です。 2 番目の単語 (デフォルトではスペースで区切られている) は 2 番目の位置パラメータとして見なされ、スクリプト内では
${1}
ではなく
${2}
として初期化されます。
'Hello CloudSavvyIT Readers!'
を渡すときに入力を引用符で囲むことで、この動作を回避しました。 。一重引用符または二重引用符は両方とも機能しますが、その動作は異なります。これについては、このシリーズの次の部分で詳しく説明します。その結果、最初の位置パラメータ
${1}
はフルテキストに設定されます
Hello CloudSavvyIT Readers!
したがって、同じことが私たちにエコーバックされます。
変数についてさらに詳しく知りたい場合は、「 および 「Bash での変数のエクスポート: その理由と方法」の 記事も興味深いかもしれません。
まとめ
この記事では、Bash の自動化とスクリプトの基本の最初のセットを確認しました。 Bash オートメーションと Shebang とは何か、そして入力変数をスクリプトに渡し始める方法を学びました。
Bash オートメーションとスクリプトの基本 (パート 2) では、変数の引用符などについて説明します。 楽しむ!





