Bashで2つ以上のOPTARGを使用する

Bashで2つ以上のOPTARGを使用する

私は「プロの」スクリプトを作成したいと思います。 $1、$2...を使用していますが、今はgetoptsを学んでいます。

ここに私の小さなスクリプトがあります:

function name(){
         echo "My name is $1"
}
function last_name(){
         echo "My last name is $1"
}
function name_complete(){
}
while getopts ":n:p:" option;do
      case $option in
           n)
              n=$OPTARG
              name $n
           ;;
           p)
              p=$OPTARG
              last_name $p
           ;;
      esac
done

name_complete使用する方法を知りたいです。-n-p

たとえば、

./script.sh -n John -p Doe

私の名前はジョンドヤです

ありがとうございます!

ベストアンサー1

機能を実行する後ろにあなたのwhile getopts- ループ:

function name_complete(){
    printf 'My name is %s %s\n' "$1" "$2"
}

while getopts ":n:p:" option; do
      case "$option" in
           n)
              n=$OPTARG
              ;;
           p)
              p=$OPTARG
              ;;
      esac
done

name_complete "$n" "$p"

変数は常に引用する必要があります。

おすすめ記事