スクリプトで作成する必要があるユーザーの数を尋ねるメッセージを表示するにはどうすればよいですか?

スクリプトで作成する必要があるユーザーの数を尋ねるメッセージを表示するにはどうすればよいですか?

私の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

関連情報