리눅스 쉘 스크립트 구문 정리

이희주   
   조회 4793   추천 0    

 

#!/bin/sh

sleep 150

sh /jffs/scripts/ChkWAN.sh


1.  위의 구문대로라면 150초 뒤에 ChkWAN.sh가 실행되는게 맞는건가요?



2. 아래와 같은 상황이라면 총 3개의 명령어가 문제없이 작동하는지 궁금합니다.


sleep 150

sh /jffs/scripts/ChkWAN.sh

sh /jffs/scripts/rewan.sh


exec 200>/tmp/wancheck.lck

flock -n 200 || exit 0

sleep 120

ping -W 5 -c 1 8.8.8.8  >/dev/null 2>&1

if [ $? -eq 0 ]; then

   logger -t WANCHECK WAN OK

else

   logger -t WANCHECK WAN Failed. Restarting

   flock -u 200

   service restart_wan

fi








짧은글 일수록 신중하게.
"exec 200" 이거 맞게 쓰신 건지 모르겠지만 exec으로 실행되는 프로세스가 현재 스크립트를 실행하는 프로세스를 덮어버리기 때문에 이후의 명령들은 실행이 안됩니다. exec이 실패한 경우에는 실행됩니다.
     
이희주 2020-08
구글링하다가 이렇게 사용해보니 문제없다~~ 라는 글을 봐서 복사하여 사용해볼까 합니다.

자세한 기억은 나지 않지만 스크립트 중복실행 방지를 위한 조치도 되어 있다고 봤는데 그건인가 싶기도하네요ㅎ
     
이희주 2020-08
http://www.snbforums.com/threads/problem-rt-n66-with-cable-modem-dcm-475.22268/post-164550


해당 게시글입니다. 중복방지를 위해서는 flock구문을 사용했네요ㅎ
엠브리오 2020-08
그냥 단순 명령의 나열인데 제대로 동작하리라는 보장이 없죠.

해당 명령어가 없을수도 있고, 명령이 실패할수도 있습니다.

보통은 해당 명령이 실패하면 다음 명령으로 넘어가지 못하고 종료될겁니다.


QnA
제목Page 3385/5718
2014-05   5207639   정은준1
2015-12   1739435   백메가
2017-06   4765   전설속의미…
2021-01   4764   하균아빠
2018-08   4764   TLaJ3KtYGr
2014-08   4764   라온제나
2021-06   4764   knufi
2014-04   4764   김한영
2016-09   4764   조병운
2016-02   4764   촙오장
2015-05   4764   천외천oo노…
2015-02   4764   장동건2014
2012-10   4764   obawang
2018-12   4764   김건우
2007-04   4764   김태경(인천)
2017-03   4764   삐돌이슬픔이
2007-04   4764   박광덕
2012-07   4764   방o효o문
2019-05   4764   kevin2
2016-03   4764   dreamer74
2012-12   4764   뚜뚜김대원
2017-02   4764   리얼홍구