스크립트에서 생성해야 하는 사용자 수를 묻는 메시지를 표시하려면 어떻게 해야 합니까?

스크립트에서 생성해야 하는 사용자 수를 묻는 메시지를 표시하려면 어떻게 해야 합니까?

내 Linux 컴퓨터에는 다음 스크립트가 있습니다.

#!/bin/bash
echo "Creating a user file using while loop"
Name=" "
Surname=" "

for ((i=1;i<6;i++)); do
    ((a=((i-1)%5)+1))

    echo "USER: $i"
    echo "_________________"
    echo "Enter first name"
    read Name
    echo "Enter surname"
    read Surname
    echo "Your name is $Name"
    echo "Your surname is $Surname"
done

생성할 사용자 수를 묻는 메시지가 표시되도록 하려면 어떻게 수정해야 합니까?

답변1

#!/bin/bash
echo "Creating a user file using while loop"
Name=" "
Surname=" "
echo -n "Enter the number of users to create: "
read no_of_users
for ((i=1;i<=no_of_users;i++)); do
        echo "_________________"
        echo "USER: $i"
        echo -n "Enter first name: "
        read Name
        echo -n "Enter surname: "
        read Surname
        echo "Your name is: $Name"
        echo "Your surname is: $Surname"
done

답변2

스크립트 상단에서 생성할 사용자 수를 읽은 다음 해당 숫자를 루프에 사용할 수 있습니다.

이는 명령줄에서 사용자 수를 추가로 제공할 수 있는 스크립트 변형에 대한 제안입니다. 명령줄에 번호를 제공하지 않으면 대화식으로 해당 번호를 묻는 메시지가 표시됩니다. 입력 유효성 검사가 수행되지 않습니다.

#!/bin/bash

nusers=$1
if [[ -z $nusers ]]; then
    read -p 'Number of users to add: ' nusers
fi

for (( i = 1; i <= nusers; ++i )); do
    read -p "User $i first name:  " name1
    read -p "User $i second name: " name2

    printf 'Hello %s %s\n' "$name1" "$name2"
done

시험:

$ ./script.sh
Number of users to add: 2
User 1 first name:  Apple
User 1 second name: Wonder
Hello Apple Wonder
User 2 first name:  Mini
User 2 second name: Uncle
Hello Mini Uncle
$ ./script.sh 2
User 1 first name:  Moped
User 1 second name: Runner
Hello Moped Runner
User 2 first name:  Tentative
User 2 second name: Luck
Hello Tentative Luck

관련 정보