답변:
5 초마다 시청 ...
watch -n 5 ls -l
변경 사항을 시각적으로 확인 --differences
하려면 ls
명령 전에 추가 하십시오 .
OSX 매뉴얼 페이지에 따르면
--cumulative 옵션은 강조 표시를 "고정"하여 변경 한 모든 위치를 계속 표시합니다. -t 또는 --no-title 옵션은 디스플레이 맨 위에 간격, 명령 및 현재 시간과 다음 빈 줄을 표시하는 헤더를 끕니다.
watch mysql dbname -e \"show processlist\;\"
brew install watch
while true; do
sleep 5
ls -l
done
watch
또한 화면을 지우면 불행한 부작용이 있으므로 루프가 유용 할 때가 있습니다. 사용할 출력은 원하는 출력 형식에 따라 다릅니다.
--differences
(당신은 터미널의 재 도장에 대해 우려하는 경우)이를 강조하도록
watch
. 예를 들어, 각 호출에서 난수를 생성하려는 경우 (예 :) 시계가 작동하지 않습니다 watch -n 1 echo ${RANDOM}
. 무작위는 한 번만 호출됩니다.
"시계"는 Busybox에서 몇 분의 1 초를 허용하지 않지만 "sleep"은 허용합니다. 그것이 당신에게 중요하다면, 이것을 시도하십시오 :
while true; do ls -l; sleep .5; done
cron을 사용하지 않고 주기적으로 명령을 실행할 수 있습니다 while
.
명령으로 :
while true ; do command ; sleep 100 ; done &
[ ex: # while true; do echo `date` ; sleep 2 ; done & ]
예:
while true
do echo "Hello World"
sleep 100
done &
&
루프를 백그라운드에 배치 하므로 마지막 을 잊지 마십시오 . 그러나 "ps -ef | grep your_script"명령으로 프로세스 ID를 찾은 다음 프로세스 ID를 종료해야합니다. 스크립트를 실행할 때 '&'를 친절하게 추가하십시오.
# ./while_check.sh &
다음은 스크립트와 동일한 루프입니다. "while_check.sh"파일을 작성하여 다음에 넣으십시오.
#!/bin/bash
while true; do
echo "Hello World" # Substitute this line for whatever command you want.
sleep 100
done
그런 다음 입력하여 실행하십시오. bash ./while_check.sh &
echo $!
각 백그라운드 프로세스가 시작된 후 스크립트를 수정할 수 있습니다 . 백그라운드에서 마지막으로 시작된 하위 프로세스의 PID입니다.
"드리프트 (drift)"를 피하고 싶다면, 명령이 걸리는 시간 (N 초 미만이라고 가정)에 관계없이 명령이 N 초마다 실행되기를 원한다는 것을 의미합니다. 두 번째 정확도 (그리고 유지할 수 없다면 경고를 인쇄합니다) :
PERIOD=5
while [ 1 ]
do
let lastup=`date +%s`
# do command
let diff=`date +%s`-$lastup
if [ "$diff" -lt "$PERIOD" ]
then
sleep $(($PERIOD-$diff))
elif [ "$diff" -gt "$PERIOD" ]
then
echo "Command took longer than iteration period of $PERIOD seconds!"
fi
done
수면이 1 초까지만 정확하기 때문에 여전히 약간 표류 할 수 있습니다. date 명령을 창의적으로 사용하여이 정확성을 향상시킬 수 있습니다.
watch -n 5 'ls -l
ls -l
5 초마다 명령을 실행합니다
Every 5.0s: ls -l Fri Nov 17 16:28:25 2017
total 169548
-rw-rw-r-- 1 sachin sachin 4292 Oct 18 12:16 About_us_Admission.doc
-rw-rw-r-- 1 sachin sachin 865 Oct 13 15:26 About_us_At_glance.doc
-rw-rw-r-- 1 sachin sachin 1816 Oct 13 16:11 About_us_Principle.doc
-rw-rw-r-- 1 sachin sachin 1775 Oct 13 15:59 About_us_Vission_mission.doc
-rw-rw-r-- 1 sachin sachin 1970 Oct 13 16:41 Academic_Middle_school.doc
-rw-rw-r-- 1 sachin sachin 772 Oct 16 16:07 academics_High_School.doc
-rw-rw-r-- 1 sachin sachin 648 Oct 16 13:34 academics_pre_primary.doc
-rw-rw-r-- 1 sachin sachin 708 Oct 16 13:39 academics_primary.doc
-rwxrwxr-x 1 sachin sachin 8816 Nov 1 12:10 a.out
-rw-rw-r-- 1 sachin sachin 23956 Oct 23 18:14 Ass1.c++
-rw-rw-r-- 1 sachin sachin 342 Oct 23 22:13 Ass2.doc
drwxrwxr-x 2 sachin sachin 4096 Oct 19 10:45 Backtracking
drwxrwxr-x 3 sachin sachin 4096 Sep 23 20:09 BeautifulSoup
drwxrwxr-x 2 sachin sachin 4096 Nov 2 00:18 CL_1
drwxrwxr-x 2 sachin sachin 4096 Oct 23 20:16 Code
drwxr-xr-x 2 sachin sachin 4096 Nov 15 12:05 Desktop
-rw-rw-r-- 1 sachin sachin 0 Oct 13 23:12 doc
drwxr-xr-x 4 sachin sachin 4096 Nov 6 21:18 Documents
drwxr-xr-x 27 sachin sachin 12288 Nov 17 13:23 Downloads
-rw-r--r-- 1 sachin sachin 8980 Sep 19 23:58 examples.desktop
간결한 솔루션으로, 명령이 실패 할 때까지 명령을 반복적으로 실행하려는 경우 특히 유용하며 모든 출력을 볼 수 있습니다.
while ls -l; do
sleep 5
done