여러 설정 옵션으로 스크립트 구성

여러 설정 옵션으로 스크립트 구성

저는 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

관련 정보