사용자가 처음에 n을 지정할 때 루프를 n번 반복하는 방법은 무엇입니까?
나는 (사용자가 원하는 횟수에 따라) 특정 부분을 n번 반복해야 하는 쉘 스크립트를 작성했습니다.
지금까지 내 스크립트는 다음과 같습니다.
echo "how many times would you like to print Hello World?"
read num
for i in {1.."$num"}
do
echo "Hello World"
done
"num"을 "5"와 같은 숫자로 변경하면 루프가 작동하지만 사용자가 루프를 반복할 횟수를 지정할 수 있어야 합니다.
답변1
당신은 그것을 사용할 수 있습니다seq
for i in $(seq 1 "$num")
또는 쉘이 bash와 같은 C 스타일 루프를 지원할 수 있습니다.
for ((i=0; i<$num; i++))
답변2
echo "how many times would you like to run your loop ?"
read max
i=0
while [ "$((i+=1))" -le "$max" ]
do
# whatever you want to do here
done
답변3
"산술 평가"를 사용하십시오(bash에만 해당):
read -p "how many times would you like to print Hello World? " max
i=0
while (( i++ < max ))
do
echo "$i, Hello World."
done
또는 프로그램을 더욱 강력하게 만들고 싶다면 이를 사용하십시오.
그러면 입력에서 숫자만 추출됩니다. 처리하는 데 시간이 오래 걸릴 수 있는 매우 큰 숫자를 제외하고 다른 모든 입력은 사용하기 전에 삭제됩니다.
while (( i++ < ${max//[^0-9]} ))
답변4
에는 또 다른 방법이 있습니다 {1.."$num"}
. Bash 확장은 for 루프로 전송하기 전에 평가되어야 합니다. 다음과 같은 방법으로 확장 구문을 사용하여 작동하게 할 수 있습니다.
for i in $(eval echo {1.."$num"});
do
echo $i;
done