반응형
$ 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 구문 끝.
반응형
Comment