BASHプログラミング
 Computer >> コンピューター >  >> プログラミング >> BASHプログラミング

例を使用して、Bash/シェルスクリプトで関数を使用する方法

この記事では、関数の使用方法について説明します。 Bashスクリプトで–コードを再利用してスクリプトを簡素化するのに役立ちます。

コードを1回記述して再利用できるのに、なぜコードを複数回書くのですか?

それが機能 させてください。

この記事では、Bash/シェルスクリプトでの関数の使用について概説します。

関数とは何ですか?

関数 再利用可能なコードの一部です。関数はパラメーターを受け入れることができるため、異なる入力に対して同じ繰り返し可能なアクションを実行できます。

関数は通常、アクションを実行したり、結果を出力または印刷したり、将来使用するために値を返したりします。

関数を使用する理由

例として、何かが発生したことを通知する電子メールを送信するスクリプトがある場合があります。複数の異なる受信者に複数の異なる電子メールを送信する場合は、スクリプトに同じ電子メール送信コードを数回記述して、メッセージを送信することができます。

関数を使用すると、このコードを1回だけ記述してから、重複したコードではなく1行の関数呼び出しで、さまざまな受信者、件名、メッセージで呼び出すことができます。

Bash関数の構文

Bash/Shellスクリプトで関数を記述するための構文は次のとおりです。

name_of_function () {
    # COMMANDS
    # Optional return value
}

注:

  • name_of_function
      を使用して関数を呼び出せるようにする名前です。
    • 英数字とアンダースコアのみ!
  • 関数名の後には()が続く必要があります (標準ブラケット)
    • 角かっこで囲まれたスペースに注意してください。必須です!
  • 関数で実行するコードは、 {}でラップする必要があります (中括弧)
    • これらの中括弧の外側のコードは関数の一部ではなく、実行されません。
  • コマンド Linuxシステムで通常使用できる任意のコマンドにすることができます
  • オプションで戻ることができます 値–使用法については以下の例を参照してください
    • 関数を早期に終了するには、 returnを呼び出すこともできます 関数を終了する値がない
    • 特別な$? 変数は最後に実行されたコマンドからの戻り値を保持し、関数の実行後にスクリプトの他の場所で利用できるようにします

例と説明

これは、さまざまなBash関数要素のすべてを示す例であり、すべてが何をしているのかを説明するコメントが付いています。

#!/bin/bash

# Define a global variable - available anywhere in the script as it is not defined inside a function or loop
initial_value=3

# Define a function which does some mathematics
my_math_function () {

    # Get the parameters passed to the function 
    # Parameters are passed after the function name when calling the function, and will be named in order of appearance, starting with $1, then $2, etc
    # Below, these parameter values are assigned to local variables - available only inside the function - so that it's easier to tell what they are
    local multiplier_value=$1
    local addition_value=$2

    # Calculate the result and assign it to a local variable
    # Notice the $(( )) wrapping the calculations - this tells the script to assign the result of these calculations to the results variable, rather than assigning the calculations as a text value
    local result=$(( $initial_value * $multiplier_value + $addition_value ))

    # Print the result to the console
    # Depending on how the function is used, text output from the function can be used to read results from it
    echo $result

    # It is also possible to get output from the function using a return value
    return $result

}

# Call the function with different input parameters
# Parameters are passed to the function by typing them after the function separated by a space
# The function above expects two parameters - a multiplier_value and addition_value

my_math_function 2 4 # Will output 10 (2 * 3 + 4)

my_math_function 3 5 # Will output 14 (3 * 3 + 5)

# The $? is a special variable in Bash scripts which always holds the return value from the last executed command
# It can be used to get the value specified as the return value from the function.

echo $? # Will output 14

# Assign the result of the function to a variable
# This will assign any text outputted by the function (for example using the echo command) to a variable
my_result=$(my_math_function 6 7)
echo $my_result # Will output 25 (6 * 3 + 7)

Linuxシェルスクリプトの「#!」とは何ですか?

シェルスクリプトに値を渡したい(それで、シェルスクリプト内の関数に値を渡すことができます)?この記事をチェックしてください。


  1. 6 つの実用的な例を含む Bash シェル関数のチュートリアル

    Bash シェル関数は、グループに単一の名前を使用して、後で実行するために複数の UNIX / Linux コマンドをグループ化する方法です。 . Bash シェル関数は、通常の Unix コマンドと同じように実行できます。シェル関数は、それらを解釈するための新しいプロセスを作成することなく、現在のシェル コンテキストで実行されます。bash エイリアスと関数の両方を使用すると、より長い、またはより複雑なコマンドのショートカットを定義できます。ただし、エイリアスは、このチュートリアルで説明されているように、これらの関数が許可する制御フロー、引数、およびその他の巧妙なものを許可しません。 この

  2. Excel でデータベース関数を使用する方法 (例あり)

    この記事では、Excel でデータベース関数を使用する方法について説明します。 Excel には 12 のデータベース関数があります。この記事では、それらを 1 つずつ適用する方法を示します。次の図は、この記事の目的を強調しています。記事をざっと見て、残りの使い方を学んでください。 下のダウンロードボタンから練習用ワークブックをダウンロードできます。 Excel のデータベース関数の概要 Excel のデータベース関数を使用すると、特定のデータベースに対して合計、積、平均などの簡単な操作を実行できます。 Excel には 12 のデータベース関数があります。これらは、DSUM、DAVE