複数の設定オプションでスクリプトを構成する

複数の設定オプションでスクリプトを構成する

私はArch Linuxをインストールするためのスクリプトを直接書いています。システムを再インストールしたり、他のデバイスでスクリプトを使用したりするたびに変更/設定するためのいくつかのオプションがあります。
BTRFSを選択した場合は、フォーマット、サブボリュームの作成、およびマウントコマンドを実行するようにスクリプトを設定したいと思います。
同様に、デスクトップ環境としてGnomeを選択した場合、スクリプトはGnomeと関連するディスプレイマネージャをインストールする必要があります。

スクリプトの上部に変数を作成すると、部分的にこれを達成できます。次に、スクリプトを実行する前に、必要に応じてコメントを付けるか、コメントを削除します。ただし、スクリプトにオプションを追加するには、定義する必要のある変数が多すぎます。

現在のスクリプトは次のとおりです。

DISK="nvme0n1"
#DISK="sda"
UEFIPARTITION="nvme0n1p1"
#UEFIPARTITION="sda1"
SYSTEMPARTITION="nvme0n1p2"
#SYSTEMPARTITION="sda2"

その後、スクリプトのどこかに次のものがあります。

gdisk /dev/$DISK
.
.
.
mkfs.vfat -n BOOT /dev/$UEFIPARTITION
mkfs.btrfs -L SYSTEM /dev/$SYSTEMPARTITION

DISK変数をまたはに設定する方がsdX簡単ですnvme0n1。その後、各コマンドに対して関連コマンドを実行できます。
私はスクリプトの初心者です。
私が説明した内容を実装する最も簡単な方法は何ですか?誰かが上記を達成するための別の/より良い方法を説明できることを嬉しく思います。

ベストアンサー1

スクリプトでオプションを実行する方法はいくつかあります。

  1. パラメータ配列を繰り返します。
# define a named array for convenience from script arguments array
ARG=( "${@}" )

for i in ${ARG[@]}; do
    echo $i
done
  1. getopt命令の使用(man 1 getopt
A=0
while getopts "ab:h" option; do
   case $option in
      a) # a key -a was given
         A=1
         ;;
      b) # The colon in definition means it requires argument
         BARG = $optarg
         ;;
      h) # display Help
         echo Help text
         exit;;
      *) # any other argumnet
         echo Unknown option $option
         exit;;
   esac
done

おすすめ記事