bashスクリプトで関数にパラメータを渡す方法は?

bashスクリプトで関数にパラメータを渡す方法は?

さまざまな変数を持つスクリプトから呼び出すことができる関数を作成したいと思います。何らかの理由で私はこれを行うのに多くの困難を抱えています。私が読んだ例では、常にグローバル変数だけを使用していますが、私が知っている限り、これは私のコードを読みやすくするわけではありません。

使用目的の例:

#!/bin/bash
#myscript.sh
var1=$1
var2=$2
var3=$3
var4=$4

add(){
result=$para1 + $para2
}

add $var1 $var2
add $var3 $var4
# end of the script

./myscript.sh 1 2 3 4

$1私は関数内でなどを試しましたが、スクリプト全体に対してグローバル関数を呼び出します。基本的に私はなどのよう$1なものを探していますが、$2関数のローカルコンテキストで探しています。ご存知のように、関数は任意の適切な言語で動作できます。

ベストアンサー1

パラメータを使用して関数を呼び出すには、次の手順に従ってください。

function_name "$arg1" "$arg2"

関数は、渡された引数を名前ではなく場所(たとえば$ 1、$ 2など)として参照します。 $ 0はスクリプト自体の名前です。

例:

#!/bin/bash

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

add 1 2

出力

./script.sh
 Result is: 3

おすすめ記事