シェルは、ユーザーがシステムと対話できるようにするコマンドラインインタープリターです。ユーザーからの入力を受け取り、出力を表示する責任があります。
シェルスクリプトは、実行順に記述された一連のコマンドです。これらのスクリプトには、関数、ループ、コマンド、変数を含めることができます。スクリプトを使用すると、ユーザーは、何度も使用される可能性のある特定のコードシーケンスを簡単に保存できます。シェルスクリプトには、読みやすさを向上させるためのコメントを含めることもできます。
シェルスクリプトは拡張子.shで保存する必要があります 。
ファイルがシェルスクリプトであることをLinuxシステムに知らせるには、ファイルを shebangで始める必要があります。 構築します。
#!/bin/bash OR #!/bin/sh
この後、スクリプトにはコマンド、関数、ループ、条件付きチェックなどを含めることができます。
優れたスクリプトには、読みやすくするコメントが常に含まれています。
基本的なシェルスクリプトの作成と実行
シェルスクリプトは、vi、catコマンド、またはGUIの通常のテキストエディタを使用して作成できます。
viを使用して基本的なシェルスクリプトを作成しましょう
$ vi basic_script.sh
これにより、viエディターが表示されます。次の行を追加します:
#!/bin/bash whoami date
この単純なスクリプトは、現在のユーザーの後に日付を表示する必要があります。
viエディターを保存して終了するには:
- ESCを押します
- タイプ:
- 「wq」と入力します
- Enterキーを押す
デフォルトでは、スクリプトの作成者はファイルの実行可能権限を取得しません。
それを変更するには:
$ chmod +x basic_script.sh
これにより、(現在のユーザーに)ファイルを実行する権限が与えられます。
スクリプトを実行するには:
$ bash basic_script.sh
出力の1行目は「whoami」コマンドに対応し、2行目は「date」コマンドに対応します。
スクリプトを実行する別の方法は:
$ ./basic_script.sh
この方法でファイルを実行するには、ユーザーが最初にアクセス許可を与える必要がある場合があります。 「bash」で実行する場合、許可は必要ありません。
同じスクリプトが「bash」で実行されています その前ですが、直接実行しようとすると権限の問題が発生します。これが発生している理由は、コマンド bash [filename] ファイルからの読み取り権限のみが必要です。
コマンド./[filename]はファイルを実行可能ファイルとして実行するため、実行するためのアクセス許可が必要です。この質問はStackExchangeで詳細に回答されています。
一般に、実行可能権限を提供することをお勧めします。
シェルスクリプトでの変数の使用
スクリプトにはユーザー定義の変数を含めることができます。実際、スクリプトのサイズが膨大になるため、明確に定義された変数を用意することが不可欠です。本質的に自己記述的である変数は、優れたスクリプトのもう1つの品質です。
スクリプトに次の行を追加します:
#!/bin/bash #This is a comment #defining a variable GREETINGS="Hello! How are you" echo $GREETINGS
ご挨拶 は定義され、後で「$」を使用してアクセスされる変数です。
変数に値が割り当てられる行にはスペースを入れないでください。
スクリプトを実行してみましょう:
コマンドラインからの入力の読み取り
シェルスクリプトは、コマンドラインからの入力を受け入れる機能を使用してインタラクティブにすることができます。読み取りコマンドを使用して、コマンドライン入力を変数に格納できます。
#!/bin/bash #This is a comment #defining a variable echo "What is your name?" #reading input read NAME #defining a variable GREETINGS="Hello! How are you" echo $NAME $GREETINGS
変数NAME コマンドラインからの入力を受け入れるために使用されています。
スクリプトの実行時:
関数の定義
ユーザーは、スクリプトで独自の関数を定義できます。これらの関数は複数の引数を取ることができます。
スクリプトに次を追加します:
#!/bin/bash #This is a comment #defining a variable echo "What is the name of the directory you want to create?" #reading input read NAME #defining a variable echo "Creating $NAME ..." mkcd () { mkdir "$NAME" cd "$NAME" } mkcd echo "You are now in $NAME"
このスクリプトは、ユーザーにディレクトリ名を要求します。次に、ディレクトリを作成し、そこにcdします。
結論
スクリプトを使用してコマンドを順番に実行する方法を確認しました。スクリプトは、ユーザーが冗長性を減らして時間を節約するのに役立ちます。スクリプトは、さまざまなユーザー間で共有することもできます。
このチュートリアルで見たスクリプトは非常に基本的なものであり、スクリプトは複雑なタスクを実行するように設計することもできます。スクリプトの詳細については、こちらを参照してください。