Bashスクリプトを書くとき、スクリプトはどのような使い方()を呼び出すかをどのように知ることができますか?

Bashスクリプトを書くとき、スクリプトはどのような使い方()を呼び出すかをどのように知ることができますか?

次のようなbash関数を書いているとしましょう。

function.sh

usage () {echo "No arguments are needed";}

myfunction () {

if [[ $# -qt 0 ]] ;
then
   usage
fi

echo "Hello World"
}

それからsource function.sh私は。しかし、そこに定義された別のスクリプトもあり、usage()その内容もわかります。

私は走って電話をmyfunction -myWorldかけusage()、何とか正しい番号で電話をかけました。

usage()bashはどれを呼び出すのか、どうすればわかりますか?

ベストアンサー1

あなたの質問への答えは現在Bash呼び出しです。最後に定義されたバージョン関数。

使用例の2つの修正バージョン:

function1.sh

usage () { echo "Usage from function1.sh - No arguments are needed"; }

myfunction1 () {
  if [[ $# -gt 0 ]] ;
  then
    usage
  fi

  echo "Hello World"
}

function2.sh

usage () { echo "Usage from function2.sh - No arguments are needed"; }

myfunction2 () {
  if [[ $# -gt 0 ]] ;
  then
    usage
  fi

  echo "Hello World"
}

その後実行

$ source function1.sh
$ source function2.sh
$ usage

出力を与える

Usage from function2.sh - No arguments are needed

スクリプトで次の点に注意してください。

  • -qtでなければなりませ-gtん。
  • usage()- 周辺にいくつかのスペースがありません。echo

おすすめ記事