GNU/Linux >> Linux の 問題 >  >> Linux

シェル スクリプトとはシェル スクリプトの作成方法

シェルとは?

シェルは、ユーザーとオペレーティング システム (OS) カーネル間のインターフェイスを提供するプログラムです。 OS は、ユーザーがログインするか、ターミナルまたはコンソール ウィンドウを開くと、各ユーザーのシェルを開始します。

シェル スクリプトとは

シェル スクリプトは、シェルおよび UNIX コマンドを含むファイルです。コンパイルされた実行可能プログラムと同様に、シェル スクリプトには特定の目的があり、再利用可能です。シェル スクリプト内のコマンドが順序付けされ、エラーがなければ、シェル スクリプトを実行してタスクを効率的に実行できます。

すべてのスクリプト、プログラム、および手順は、次の規則を使用します:

  • エラーなく実行されるはずです。
  • 意図されたタスクを実行します。
  • プログラム ロジックが明確に定義されているか、明らかであることを保証します。
  • 不要な作業を組み込むべきではありません。

シェル スクリプトの作成

シェル スクリプトは、一連の UNIX コマンドを含むテキスト ファイルです。シェル スクリプトは、多くの場合、繰り返し使用するコマンド シーケンスです。通常、コマンド ラインにシェル スクリプトの名前を入力して、シェル スクリプト内の一連のコマンドを実行します。

シェル スクリプトを作成するには、ファイルを作成し、そこに UNIX コマンドを入れます。 UNIX コマンドには、標準ユーティリティ、ユーザー プログラム、およびタスクを実行するために必要なその他のスクリプトの名前が含まれています。

注意 – スクリプトに他のスクリプトの名前を入れる場合は、スクリプトが実行されるように、読み取りと実行のアクセス許可があることを確認してください。

スクリプト ファイルには、オペレーティング システム環境での通常のファイル名の規則に従って、任意の名前を付けることができます。シェル プログラムに名前を付けるときは、既存の UNIX コマンドまたはシェル関数と競合する名前を使用しないようにする必要があります。

次のスクリプト例では、echo コマンドを使用して、出力を作成する実際のコマンドが呼び出される前に、予想される出力についてユーザーに通知します。何が起こっているかをユーザーに知らせるスクリプトを書くときは、スクリプトが正しく実行されているかどうかをユーザーが把握できるようにすることをお勧めします。

# vi my_script.sh
#!/bin/sh
clear
echo "SCRIPT BEGINS"
echo "Hello $LOGNAME!"

シェル スクリプトの実行

システムで他のコマンドと同じようにシェル スクリプトを実行するには、まず chmod コマンドで実行権限を割り当てます。例:

# chmod +x my_script.sh

これは、シェル スクリプトを実行するための推奨される最も一般的な方法です。指定したスクリプトを実行するためのサブシェルが作成されます。スクリプトを実行する必要があるユーザーにのみ実行権限を与えてください。

スクリプトがサブシェルで実行される場合、スクリプトで作成および使用される変数、エイリアス、および関数は、サブシェルでのみ認識されます。スクリプトが終了し、制御が親シェルに戻ると、変数、関数、およびスクリプトによって行われたシェルの状態に対するその他の変更は認識されなくなります。

次の例では、現在のシェルでスクリプトを実行します:

# . ./my_script.sh

次の例は、デバッグを伴うスクリプトの実行を示しています:

# sh -x my_script.sh

上記のセクションで作成したスクリプトを実行して、正しい結果が出力されるかどうかを確認してみましょう。

sh my_script.sh
SCRIPT BEGINS
Hello root!

#! でスクリプトを開始する文字

コマンドラインにスクリプト名を入力して実行権限を持つスクリプトを実行する場合、スクリプトを実行するサブシェル (sh、csh、ksh、bash、またはその他のサブシェル) を知っておく必要があります。

スクリプトの最初の行は、スクリプトのインタープリターとして作成されるシェルを決定します。スクリプトの最初の行の最初の 2 文字は #! です。現在のシェルは、スクリプトを実行するサブシェルのパス名として続くものを解釈します。

注意 – 「最初の行の最初の 2 文字」は、これらの文字の前に空白行またはスペースがあってはならないことを意味します。

次の例では、指定されたシェルがスクリプトを実行するサブシェルとしてフォークされます。

#!/bin/sh 
#!/bin/csh 
#!/bin/ksh

スクリプトにコメントを入れる

スクリプトを読むのは通常、スクリプトを作成する人だけではありません。多くの人が、他の人が書いたスクリプトを実行しています。スクリプト ファイルの内容を表示してスクリプトの機能を確認する場合、スクリプトの作成者がコメントにいくつかの説明を含めていると役立ちます。

プログラムやシェル スクリプトにコメントを入れることをお勧めします。コメントは、スクリプトの目的を説明し、特に混乱を招く可能性のある特定の行を説明する必要があります。

以下に示すサンプル スクリプト my_script.sh には、スクリプトの先頭にコメントがあり、実行時にスクリプトが何を行うかを説明しています。

# cat my_script.sh
#!/bin/sh

# This script clears the window, greets the user.

clear
echo "SCRIPT BEGINS"

echo "Hello $LOGNAME!"

コメントを追加したときに構文エラーが発生しない限り、コメントを追加してもスクリプトの実行には影響しません。コメントは文書化を目的としているため、スクリプトを読んでいる人は、スクリプトが実行されたときに何が起こるかを理解できます。

コメントは、シェル スクリプトに入力される最初の行である場合があります。コメントには、実行する必要がある段階的な操作をリストできます。操作を実行するには、各コメント行に従ってオペレーティング システム コマンドを実行します。

UNIX / Linux :シェルとは?さまざまなシェルとは?
シェル スクリプトのデバッグ方法


Linux
  1. Linuxコマンドのスクリプトを作成する方法

  2. スクリプトを使用して crontab を作成する方法

  3. 起動時にシェルスクリプトを実行する方法

  1. シェルスクリプトで一時ファイルを作成するにはどうすればよいですか?

  2. シェルスクリプトでパスワードを隠す?

  3. シェルからPythonスクリプトを実行する方法

  1. シェルスクリプトで変数を使用する方法

  2. シェルスクリプトを作成する方法

  3. シェルスクリプトでスイッチを処理する方法は?