programing

bash 스텝n을 사용하여 범위를 작성하려면 어떻게 해야 합니까?(증분으로 일련의 숫자를 생성합니다.)

muds 2023. 4. 11. 22:41
반응형

bash 스텝n을 사용하여 범위를 작성하려면 어떻게 해야 합니까?(증분으로 일련의 숫자를 생성합니다.)

bash의 범위에서 반복하는 방법은

for i in {0..10}; do echo $i; done

스텝을 사용하여 시퀀스에 걸쳐 반복하는 구문은 무엇입니까?예를 들어, 나는 위의 예에서 짝수만 얻고 싶다.

하고 싶다

for i in `seq 0 2 10`; do echo $i; done

(물론이지만)seq 0 2 10스스로 같은 출력을 생성합니다).

주의:seq는 부동 소수점 번호를 허용합니다(예:seq .5 .25 3.5bash의 괄호 확장에서는 정수만 사용할 수 있습니다.

Bash 4의 브레이스 확장에는 스텝 기능이 있습니다.

for {0..10..2}; do
  ..
done

Bash 2/3(루프는 C-style, 위의 답변 참조) 또는 Bash 4 중 어느 것이든 'seq' 명령어보다 더 좋습니다.

Pure Bash, 추가 프로세스 없음

for (( COUNTER=0; COUNTER<=10; COUNTER+=2 )); do
    echo $COUNTER
done
#!/bin/bash
for i in $(seq 1 2 10)
do
   echo "skip by 2 value $i"
done

사용하다seq명령어:

$ seq 4
1
2
3
4

$ seq 2 5
2
3
4
5

$ seq 4 2 12
4
6
8
10
12

$ seq -w 4 2 12
04
06
08
10
12

$ seq -s, 4
1,2,3,4

중괄호 확장 {m..n}..s}가 seq보다 효율적입니다.또한 다음과 같은 출력 형식을 사용할 수 있습니다.

$ echo {0000..0010..2}
0000 0002 0004 0006 0008 0010

예를 들어 파일에 번호를 매기고 'ls'의 정렬된 출력을 원하는 경우 유용합니다.

언급URL : https://stackoverflow.com/questions/966020/how-to-produce-a-range-with-step-n-in-bash-generate-a-sequence-of-numbers-with

반응형