![Solaris에서 5초마다 명령을 시작하는 방법은 무엇입니까?](https://linux55.com/image/84841/Solaris%EC%97%90%EC%84%9C%205%EC%B4%88%EB%A7%88%EB%8B%A4%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
ls -la
Solaris에서 5초마다 명령을 시작하는 방법은 무엇입니까 ? . 비슷한 걸 찾고 있어요 watch -n 5 ls -la
답변1
다음을 사용하여 sleep
스크립트를 만들 수 있습니다.이 티켓
기본적으로 다음과 같은 결과가 생성됩니다.
while true
do
ls -la
sleep 5
done
언제든지 액세스하고 싶다면 화면에서 실행하거나 언제든지 참조할 수 있는 파일로 출력을 리디렉션할 수 있습니다(내 생각에는 screen
은 watch
기본 Solaris 설치와 함께 설치되지 않기 때문입니다).
답변2
@Carpette 및 @AmitSanghvi의 두 가지 답변을 기반으로 합니다.
형태의 순환
while true
do
...
sleep 5
done
우리 모두 알고 있듯이, 인터럽트를 사용하는 것은 매우 어렵습니다 Ctrl+C. 반면에 간격은 sleep
키보드 인터럽트의 주요 대상입니다.
더 좋은 점은 다음과 같습니다.
while sleep 5
do
...
done
답변3
@Carpette의 이전 답변을 바탕으로 다음은 동일한 스크립트의 매개변수화된 버전입니다.
if [ $# -ne 2 ]; then
echo "ERROR: Syntax is script <command> interval"
exit
fi
while true
do
eval "${1}"
echo "
++++++++++++++++++++++++++++++++++++
"
sleep $2
done
사용 예:
~/scripts/watch.sh "tail -10 /oracle/home/alert.log" 5