BASH 루프를 만드는 방법

BASH 루프를 만드는 방법

저는 bash와 Linux를 처음 접했고 bash 루프를 만드는 방법을 알고 싶습니다. 그러면 실행될 때 몇 번이나 실행할지 묻고 그만큼 많이 실행됩니다.

LUA에서 하고 있지만 bash에 있어서 파일에 추가하여 ~/.bashrcVPS에 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"; doneseq이 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보다 큰지 확인해야 하지만 이 예제가 원하는 작업을 수행할 것이라고 생각합니다.

원천:http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html

관련 정보