変数の複雑な初期化[閉じる]

変数の複雑な初期化[閉じる]

次のスクリプトがあります。

if [[ is_case1 -eq "1" ]]; then  
    VAR_A=$1  
    VAR_B=$2  
    VAR_C=$3  
    VAR_D=$4  

elif [[ is_case1 -eq "2" ]]; then   
   # initialize the variables here with specific logic 
   VAR_A=…  
    VAR_B=…  
    VAR_C=…  
    VAR_D=…  
else  
  # initialize the variables here with specific logic 
   VAR_A=…  
    VAR_B=…  
    VAR_C=…  
    VAR_D=…  
fi  

他のケースがあると初期化がますます長くなるので、私はこれが本当に好きではありません。
このようなケースをよりエレガントに書くには?

ベストアンサー1

単一変数の代わりに値の配列を使用すると、初期化がよりきれいになる可能性があります。

#!/bin/bash

# set default values:
values=( "val1" "val2" "val3" )  # or values=()

case "$somevalue" in
    1) values=( "$@" ) ;;                    # get values from command line
    2) values=( "some" "other" "values" ) ;; # use other values
    *) # other cases uses default values
esac

おすすめ記事