터미널에서 상태 반복 확인 방법 - bash while loop
반응형
$ while true; do ls -al ; date; echo ; echo ; sleep 1; done

파일 생성이나 프로세스 상태 등 명령어를 반복해서 확인해야 하는 경우가 있다. 

이 경우 shell script의 while 을 이용하면 명령어를 반복해서 입력할 필요가 없다.

# while true 를 입력하면 > 가 표시되므로 이후 순서대로 기입한다.

$ while true
> do
> ls -al
> date
> echo
> echo
> sleep 1
> done

# done 를 입력하면 for loop 가 작동하며 아래와 같이 출력된다.

total 8
drwxrwxr-x 2 enowy enowy 4096 Sep 28 01:45 .
drwxr-xr-x 7 enowy enowy 4096 Sep 28 01:44 ..
-rw-rw-r-- 1 enowy enowy    0 Sep 28 01:45 a.txt
-rw-rw-r-- 1 enowy enowy    0 Sep 28 01:45 b.txt
-rw-rw-r-- 1 enowy enowy    0 Sep 28 01:45 c.txt
Tue Sep 28 01:47:16 UTC 2021


total 8
drwxrwxr-x 2 enowy enowy 4096 Sep 28 01:45 .
drwxr-xr-x 7 enowy enowy 4096 Sep 28 01:44 ..
-rw-rw-r-- 1 enowy enowy    0 Sep 28 01:45 a.txt
-rw-rw-r-- 1 enowy enowy    0 Sep 28 01:45 b.txt
-rw-rw-r-- 1 enowy enowy    0 Sep 28 01:45 c.txt
Tue Sep 28 01:47:17 UTC 2021


total 8
drwxrwxr-x 2 enowy enowy 4096 Sep 28 01:45 .
drwxr-xr-x 7 enowy enowy 4096 Sep 28 01:44 ..
-rw-rw-r-- 1 enowy enowy    0 Sep 28 01:45 a.txt
-rw-rw-r-- 1 enowy enowy    0 Sep 28 01:45 b.txt
-rw-rw-r-- 1 enowy enowy    0 Sep 28 01:45 c.txt
Tue Sep 28 01:47:19 UTC 2021

 

위의 내용을 한줄로 기입할 수도 있다. ls -al 부분을 다른 명령어로 치환하여 사용하면 된다.

$ while true; do ls -al ; date; echo ; echo ; sleep 1; done

 

내용을 보면

  • while true  while loop 조건
  • do  loop 구문 시작.
  • ls -al ➡ 원하는 명령어. ps나 다른 반복 확인이 필요한 명령어를 입력한다.
  • date ➡ 출력 시 시간을 표시한다. 계속 반복 출력하다 보면 시간이 알고 싶은 경우가 있고 화면 변화를 알 수 있다.
  • echo ➡ 출력 항목 사이을 띄우기 위한 공백 입력. echo "WOW" 처럼 출력할 수도 있다.
  • sleep 1 ➡ 1 초 대기. 원하는 숫자를 초 단위로 넣어 대기 가능하다.
  • done ➡ loop 구문 끝.
반응형