내 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