저는 bash와 Linux를 처음 접했고 bash 루프를 만드는 방법을 알고 싶습니다. 그러면 실행될 때 몇 번이나 실행할지 묻고 그만큼 많이 실행됩니다.
LUA에서 하고 있지만 bash에 있어서 파일에 추가하여 ~/.bashrc
VPS에 ssh할 때 시작되기를 원합니다. 제가 작성한 Lua 코드는 다음과 같습니다.
write("How many times should I loop? ")
local Num = tonumber( read() )
for i=1,Num do
print("Looped "..tostring(i).." time(s).")
end
여기에 내가 추가할 작은 내용이 있습니다 ~/.bashrc
.
if [[ -n $SSH_CONNECTION ]] ; then
echo example
fi
답변1
이것은 한 줄입니다.
read -p "No of Repetitions?" repeat; for i in $(seq $repeat); do echo "This is $i"; done
$SSH_CONNECTION
비어 있지 않을 때 이 명령을 실행 하려면 다음 을 수행하십시오.
[[ -n $SSH_CONNECTION ]] && read -p "No of Repetitions?" repeat; for i in $(seq $repeat); do echo "This is $i"; done
&&
이전 명령이 성공한 후에만 다음 명령이 실행됨을 나타냅니다($?=0
).read -p "No of Repetitions?" repeat
프롬프트"No of Repetitions?"
와 입력을repeat
변수로 저장합니다.for i in $(seq $repeat); do echo "This is $i"; done
seq
이 for 루프 는 작업을 완료하기 위해 지정된 횟수만큼 반복하는 데 사용됩니다 .echo "This is $i"
당신이하고 싶은 무엇이든 그것을 대체해야합니다 .
이는 다음과 같이 자세히 설명할 수 있습니다.
if [[ -n $SSH_CONNECTION ]]; then
read -p "No of Repetitions?" repeat
fi
for i in $(seq $repeat); do
echo "This is $i"
done
답변2
이것이 도움이 되는지 확인하세요:
#!/bin/bash
echo -n "How many times should I run? "
read numOfTimes
for i in $(seq 1 $numOfTimes);do
echo $i
done
설명을 여러 부분으로 나누어 보겠습니다.
- 에코-n화면에 메시지를 표시하고 사용자의 응답을 변수로 읽습니다.빈도.
- 카니발for 루프다음과 같은 구조를 가지고 있습니다: i의 경우 [1 2 3 4 ... n]을 수행합니다.
- 이 예에서는 시퀀스를 만들었습니다.1 2 3 4 ... 엔사용순서, 시작 숫자는 1이고 마지막 요소는 다음 값으로 표시됩니다.$numOf회.
물론 더 복잡한 시나리오에서는 예를 들어 사용자의 응답이 숫자이고 0보다 큰지 확인해야 하지만 이 예제가 원하는 작업을 수행할 것이라고 생각합니다.