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

Bash で関数を作成して呼び出す方法

Bash で関数を作成して呼び出す方法のクイック ガイド。

関数は、何らかのアクションを実行するために使用される再利用可能なコードのブロックです。関数を使用すると、モジュール性が向上し、コードの高度な再利用が可能になります。

Bash には echo などの組み込み関数がいくつか用意されています。 と read ですが、独自の関数を作成することもできます。

Bash で関数を作成する

Bash で関数を作成するには、次の 2 つの方法があります。

1 つの方法は、関数名のみを使用することです。例:

functionName(){
  // scope of function
}

コンパクト版:

functionName(){ echo "hello"; }

もう 1 つの方法は、function を使用して関数を宣言することです。 キーワード:

function functionName {
  // scope of function
}

コンパクト版:

function functionName { echo "hello"; }

() が必要ないことに注意してください function を使用する場合 関数を作成するためのキーワード。

Bash 関数に関する注意事項:

  • 中括弧内のコード {} 関数本体とスコープです
  • 関数を呼び出すときは、bash スクリプトのどこからでも関数名を使用します
  • 関数は、使用する前に定義する必要があります
  • コンパクト バージョンを使用する場合、最後のコマンドにはセミコロン ; が必要です

例:

次のコードは、「Hello World」をコンソールに出力する関数を作成します。関数の名前は printHello です :

#!/bin/bash

printHello(){
    echo "Hello World!"
}

Bash で関数を呼び出す

上記の関数をどのように呼び出すのでしょうか? bash スクリプトで行う必要があるのは、関数の名前を記述することだけで、それが呼び出されます。

例:

#!/bin/bash

printHello(){
    echo "Hello World!"
}

# Call printHello function from anywhere in the script by writing the name

printHello

出力:

"Hello World"

引数を渡す

上記の関数 printHello() パラメータはありません。これを呼び出すたびに、「Hello World」という出力が得られます。しかし、より一般的な関数を作成したい場合はどうなるでしょうか?たとえば、何らかの引数を指定して関数を呼び出すと、送信した内容が出力されます。

これには 2 つの方法があります。

まず printHello() を変更します 渡された引数を出力する関数:

例:

#!/bin/bash

printAny(){
    echo "Hello " $1
}

printAny World
printAny DevQa
printAny I love coding!

出力:

Hello World
Hello DevQA
Hello I

3 番目の print ステートメント printAny I love coding! に注目してください。 「こんにちは、私」のみを出力しました。

これは、関数が 1 つのパラメーター $1 のみを受け取るように設計されているためです。 . 「コーディングが好き!」という言葉。は実際には 3 つのパラメーターです。

すべてを印刷したい場合は、テキストを引用符で囲む必要があります

例:

#!/bin/bash

printAny(){
    echo "Hello " $1
}

printAny "I love coding!"

出力:

Hello I love coding

別の例として、数字も渡すことができます:

#!/bin/bash

add() {
    result=$(($1 + $2))
    echo "Result is: $result"
}

add 1 2

出力:

Result is: 3

戻り値

Bash 関数は値を返すこともできます。

例:

#!/bin/bash

add() {
    result=$(($1 + $2))
}

add 1 2
echo "The sum is: "$result

出力:

The sum is: 3

関数から値を返すもう 1 つの方法は、必要に応じて使用できる変数に結果を代入することです。

例:

#!/bin/bash

add () {
  local result=$(($1 + $2))
  echo "$result"
}

result="$(add 1 2)"
echo "The sum is: "$result

出力:

The sum is: 3

Linux
  1. Awk内のBashスクリプトでBash関数を呼び出す方法は?

  2. Bash初心者シリーズ#9:Bashでの関数の使用

  3. C++ で C 関数を呼び出す方法、C で C++ 関数を呼び出す方法 (C と C++ の混合)

  1. Linuxシェルスクリプトで関数を定義して使用する方法

  2. 外部変数と埋め込みスクリプトを使用してBashスクリプトを作成する方法

  3. .intputrc ファイルで Linux のマクロと関数のキーバインドを作成する方法

  1. Bash関数とその使用方法{変数、引数、戻り値}

  2. Linuxでユーザーグループを作成および削除する方法

  3. シェル変数の関数?