私が行った場合
#!/bin/bash
a=2
func() {
echo $a
echo $b
}
b=3
func $b
それから2\n3
、私が期待していた場所だけが印刷され3
ます。
質問
グローバルが関数内で使用可能な場合。では、BASH で関数の引数を解析する目的は何ですか?
Bash はこのようには機能しません。関数内で引数を取りませんでした。代わりに、後で関数でエコーした 2 つのグローバル変数を初期化しただけです。
必要なことを行うには、次のことを行う必要があります。
#!/bin/bash
a=2
func() {
# first argument
echo $1
# second argument
echo $2
}
b=3
func $b
func $a $b
出力:
3
2
3
関数に引数を渡して、さまざまなパラメーター値で動作できるようにします。
コードは渡された引数を使用しておらず、グローバル変数を使用しています。代わりに考えてみましょう:
#!/bin/bash
a=2
b=3
func() {
echo $1
}
func ${a}
func ${b}
収量:
2
3