0

私が行った場合

#!/bin/bash

a=2
func() {
    echo $a
    echo $b
}

b=3
func $b

それから2\n3、私が期待していた場所だけが印刷され3ます。

質問

グローバルが関数内で使用可能な場合。では、BASH で関数の引数を解析する目的は何ですか?

4

2 に答える 2

3

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
于 2013-04-08T13:12:45.403 に答える
2

関数に引数を渡して、さまざまなパラメーター値で動作できるようにします。

コードは渡された引数を使用しておらず、グローバル変数を使用しています。代わりに考えてみましょう:

#!/bin/bash

a=2
b=3

func() {
  echo $1
}

func ${a}
func ${b}

収量:

2
3
于 2013-04-08T13:11:32.993 に答える