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