연속된 숫자를 나열하는 linux seq 명령어 사용법
seq 명령어는 연속된 숫자를 나열해 주는 명령어로 shell script 에서 for 루프등을 돌기 위한 조건을 만들 때 유용합니다.
n까지 나열
1 부터 n 까지 나열하려면 종료 숫자를 지정해 주면 됩니다.
$ seq 7 1 2 3 4 5 6 7
시작과 끝 지정
파라미터를 2개를 주면 첫 번째는 시작 숫자, 2번째는 종료 숫자로 처리하며 다음은 3부터 7까지 숫자를 나열합니다.
$ seq 3 7 3 4 5 6 7
증분 지정
파라미터를 3개를 주면 첫 번째는 시작 숫자, 2번째는 증분, 3번째는 종료 숫자로 처리하며 다음은 1부터 10까지 숫자를 3씩 증가시켜서 나열합니다.
$ seq 1 3 10 1 4 7 10
구분자 지정
기본 구분자는 new line 이지만 이럴 경우 seq 의 결과를 for loop 에서 사용하기가 어려워 집니다. 이럴때는 구분자를 지정하는 옵션인 -s 를 사용해서 공백을 구분자로 지정하면 됩니다.
$ seq -s " " 1 3 10 1 4 7 10
사용예
정해진 횟수만큼 명령어 실행
아래는 1부터 10까지 루프를 돌면서 sleep 을 수행하며 sleep 시간은 1초씩 증가합니다.
#!/usr/bin/env bash for i in $(seq -s " " 10);do ## 실행할 명령어 echo "$i"; sleep $i; done
x초마다 명령어 실행
아래는 증분을 이용해서 5초마다 명령을 실행하며 1분이 되면 종료합니다.
#!/usr/bin/env bash INCR=5 for i in $(seq -s " " 1 ${INCR} 60);do ## 실행할 명령어 echo "${i} " $(date "+%Y-%m-%d %H:%M:%S"); sleep ${INCR}; done