ウェブサイト検索

引数を持つBash関数を作成する


効率的なコードを作成するために、bash関数はシェルスクリプトで使用されます。本質的に、これらはプログラム全体で再利用できる一連の命令です。さらに、プログラマーは長く複雑なスクリプトを管理しやすい部分に分割し、必要に応じて呼び出せるようにします。この記事では、引数をbash関数に渡して引数を持つ関数を作成する方法について説明します。パラメータは文字列、整数、またはまったく別のものである可能性があります。この記事では、bash関数に引数を送信するさまざまな方法が使用されます。

Bash関数への引数の渡し方

このセクションでは、Linuxのbash関数に引数を渡す方法を示します。しかしまず、bashでの関数の作成方法を示します。bashスクリプトにおける関数の利用は、コンテンツを再利用する素晴らしい方法です。bashスクリプト内で繰り返し呼び出すことができるコマンドのグループは、bashモジュールと呼ばれることがあります。bashの関数は、プログラムを読みやすくし、同じスクリプトを繰り返し入力するのを防ぐために存在します。

プログラムを書くために、bashシェルを使用します。これは「#!/bin/bash」です。次の行では、実質的にユーザー定義の関数を定義しますので、好みの名前を付けます。ここでは関数を「func」と名付け、関数と一緒に使用される丸括弧「()」を使用します。その中に波括弧を使います。「echo」コマンドを使用して、「私は自国を愛しています」というテキストを含む文を印刷します。そして、この文は関数に埋め込まれているため、関数が呼び出されると出力に表示されます。関数はスクリプトの最後で呼び出されます。このためには、かっこなしでメソッド名「func」を入力するだけです。

#!/bin/bash
func () {
         echo “I love my country”
}
func

ターミナルにbashスクリプトの出力を表示するコマンドが今からターミナルに入力されます。これを行うために、まず「bash」というキーワードをスペースの後に続けて、その後にbashスクリプトの名前「filebash.sh」を入力します。

Linux@linux:~/Desktop$ bash filebash.sh

「func」という関数内で使用した文字列で、関数を呼び出した後に画面に表示したいと思っていたものは、このコマンドを実行すると表示されます。ご覧の通り、「私は自分の国を愛しています」という文が下の画像に表示されています。

さて、次のセクションでは、bash関数の引数を説明します。これを行うために、最初に以前と同様にシェルを追加し、その後「func1()」という名前の関数を定義し、中括弧を続けて記述したbashスクリプトを構築します。関数の本体は中括弧の中にあります。したがって、関数の本体内で「echo」コマンドを使用して関数名「func1」を表示し、bashパラメータ「$1」を渡します。関数の本体を出た後、次の行でその関数を呼び出し、「Goodluck」という文字列を引数として渡します。この文字列は変数「$1」に保持されます。

#!/bin/bash
func1 () {
         echo “func1 $1”
}
func1 “Goodluck”

スクリプトの出力は、前のステップで使用されるのと同じコマンドを入力することによって端末に表示されます。

Linux@linux:~/Desktop$ bash filebash.sh

以下の画像にあるように、このコマンドを実行したとき、関数名「func1」と、bash関数に渡した引数「Goodluck」を含むステートメントが表示されました。それはパラメータ「$1」に保存されます。

Bash関数に複数の引数を渡す

このセクションは前のセクションと似ていますが、ここでは単一の引数の代わりに複数のパラメーターを渡します。そのために、まずbashシェルを追加するスクリプトを開発します。そのスクリプトの最初に「#!/bin/bash」と書きます。次に「user_function()」という名前の関数を定義し、関数の本体は波括弧を使って作成します。これらの括弧の間に、前のセクションと同じ手順に従い、「user_function」という関数名と「$1」、「$2」、「$3」、「$4」というパラメーターを「echo」コマンドとともに入力します。

次のステップでは、引数として、関数の名前「user_function」を使用し、引数を構成する4つの文字列「I」、「love」、「my」、「country」を使って関数を呼び出します。文字列は引用符で書かれる必要があります。bashのパラメータは、引数として渡すこれらの文字列で置き換えられます。最初の文字列は「$1」に、2つ目は「$2」に、3つ目は「$3」に、4つ目は「$4」に格納されます。

#!/bin/bash
user_function () {
         echo “user_function $1 $2 $3 $4”
}
user_function “I” “love” “my” “country”

さて、まず「bash」と入力し、その後にスクリプトの名前「filebash.sh」を入力することで、ターミナルでbashスクリプトを開くコマンドを使用します。

Linux@linux:~/Desktop$ bash filebash.sh

下の画像に示すように、コマンドが成功裏に実行されると、関数名「ユーザ関数」と、bash関数に引数として渡した文字列「私は自分の国を愛しています」が表示されます。

整数引数を使ったBash関数における除法メソッドの使用

このセクションでは、整数をbashスクリプトを使用して割り算し、その結果を関数への入力として送信します。これを達成するために、以前のステップで行ったように、まずbashシェルを追加するスクリプトを作成します。次に、「user function()」という関数を定義し、その内部で中括弧を使用して「div」という変数を定義し、$記号「$」を使って割り算操作を保存します。それから、二重丸括弧を使用し、その内部で2つのパラメータ「$1」と「$2」を使用し、これらの2つのパラメータの間に割り算演算子を挿入して割り算を実行します。

次に、以下の行で「echo」コマンドを使用し、入力ステートメント「60を10で割るは」を引数「div」とともに渡します。この引数には、割り算の結果が格納されているため、「$」という値が渡されます。私たちが割り算で使用する値「60」と「10」は、関数「user_define」を使って呼び出すときに引数として関数に渡されます。

#!/bin/bash
user_function () {
div=$( ( $1 / $2 ) )
 echo “dividing 60 by 10 is : $div”
}
user_function 60 10

次のステップとして、結果を画面に表示するために以下のコマンドを使用する必要があります。

Linux@linux:~/Desktop$ bash filebash.sh

このコマンドを実行すると、除算の結果が表示されます。結果は「6」であり、「60を10で除算すると: 6です。」という文によって示されています。

結論

この記事では、引数を取るLinuxのbash関数の書き方について議論しました。bash関数では、引数を送信するためのさまざまな手法が定義されています。この記事の最初の部分では、bashでスクリプトを書く方法と関数を構築する方法、さらに関数に単一の引数を提供する方法を説明しました。後半では、多くのパラメータがbash関数に供給され、最後のセクションでは整数引数が渡されて割り算を実行します。