도움말 텍스트 문자열 ~ 해석

처음에는 학습 shell, 프로젝트 어떤 문제를 해결할 급히, 여러분, 도와주세요.~

장치 etc/config 목록 아래에서 개 cron 파일 파일 형식 아래, 아래 *hour 범위 를 0~23, *min 범위 위해0~59

config cron
option reloadenable '0'
option reloadtimehour '0'
option reloadtimemin '0'
option wifiupenable '0'
option wifiuptimehour '0'
option wifiuptimemin '0'
option wifidownenable '0'
option wifidowntimehour '0'
option wifidowntimemin '0'

지금 하나 써 스크립트, cron 파일 내용 읽기 시작했을 때 reloadenable 안 위해 0 따라 reloadtimehour 및 reloadtimemin 값 일어나다 t 하나 임무를 집행하다 장치 다시 명령
wifiupenable 및 wifidownenable 비슷한, 당직하다 안 위해 0 때 *hour 따라 와 *min 값 일어나다 t 하나 임무를 집행하다 무선 켜기, 닫기 명령

글쓴이 Ki 작성일 2015-01-21 13:26

  1. config=./etc/config/cron
  2. cronfile=/tmp/cronjob
  3. reloadcmd="reboot"
  4. wifiupcmd="wifi up"
  5. wifidowncmd="wifi down"
  6. crontab -l > $cronfile
  7. for item in reload wifiup wifidown; do
  8. eval ${item}enable=$(grep ${item}enable $config|sed -r "s/.*'(.*)'/\1/")
  9. eval ${item}timehour=$(grep ${item}timehour $config|sed -r "s/.*'(.*)'/\1/")
  10. eval ${item}timemin=$(grep ${item}timemin $config|sed -r "s/.*'(.*)'/\1/")
  11. if [ ! A$(eval echo '${item}enable) = "A0" ]; then
  12. sed -i '/$(eval echo '${item}cmd)/d' $cronfile
  13. echo " $(eval echo '${item}timemin) $(eval echo '${item}timehour) * * * $(eval echo '${item}cmd)" >> $cronfile
  14. fi
  15. done
  16. crontab $cronfile
  17. rm -f $cronfile

글쓴이 미경 작성일 2015-01-21 14:11

또 누가 만들었어. 만약 t 안에 이미 관련 작업을
0 1 * * * reboot
1 2 * * * wifi up
1 3 * * * wifi down

실행할 스크립트 전에 먼저 될 생각 이 몇 임무를 완전히 쓸어버리죠, 지향해 대응 이 세 행 삭제 ~~ 어떻게?

글쓴이 Ki 작성일 2015-01-21 16:15

crontab $cronfile 명령을 자동으로 지우기 전에 t t, 다시 새로운 파일.

글쓴이 미경 작성일 2015-01-21 16:17

t 안에 다른 임무가 수도 있고 싶지 삭제하시겠습니까?= =


/sbin/rg-cron.sh: line 10: syntax error: unterminated quoted string

또 힌트 이 오류, 무슨 이유로?. .

글쓴이 Ki 작성일 2015-01-21 16:19

그럼 너 혼자 먼저 알고 싶은 임무를 삭제하시겠습니까? 싫어, 작업 삭제.
지금쯤 잘못 없어요.방금 쓴 샌다.

글쓴이 미경 작성일 2015-01-21 16:20

그냥 먼저 삭제 t 안에 reboot · wifi up, wifi down 그 몇 줄 수 없다.
그냥 힌트 같은 잘못이 있는데, - 등 매니토 해답

글쓴이 Ki 작성일 2015-01-21 16:21

지금쯤 된다.

글쓴이 미경 작성일 2015-01-21 16:21

매니토

echo " $(eval echo '${item}timemin) $(eval echo '${item}timehour) * * * $(eval echo '${item}cmd)" >> $cronfile

이 줄에서 그냥 힌트 같은 실수를 다시 좀 볼까요?
line 15: syntax error: unterminated quoted string

글쓴이 Ki 작성일 2015-01-21 16:22

정말 이상하다. 나는 붙인 어떻게 자동 의해 고쳤다.

config=./etc/config/cron
cronfile=/tmp/cronjob
reloadcmd="reboot"
wifiupcmd="wifi up"
wifidowncmd="wifi down"
crontab -l > $cronfile
for item in reload wifiup wifidown; do
eval ${item}enable=$(grep ${item}enable $config|sed -r "s/.*'(.*)'/\1/")
eval ${item}timehour=$(grep ${item}timehour $config|sed -r "s/.*'(.*)'/\1/")
eval ${item}timemin=$(grep ${item}timemin $config|sed -r "s/.*'(.*)'/\1/")
if [ ! A$(eval echo '$'${item}enable) = "A0" ]; then
sed -i '/$(eval echo '$'${item}cmd)/d' $cronfile
echo " $(eval echo '$'${item}timemin) $(eval echo '$'${item}timehour) * * * $(eval echo '$'${item}cmd)" >> $cronfile
fi
done
crontab $cronfile
rm -f $cronfile

글쓴이 미경 작성일 2015-01-21 16:23

됐어요, 감사합니다.!!!

글쓴이 Ki 작성일 2015-01-21 16:24

너 무슨 무선 설비 한?
이 프로그램을 이용해서 무슨 위?
이 프로필을 보고 좀 같다... OpenWRT?
나도 할 무선 eNodeB 것이다.

글쓴이 미경 작성일 2015-01-21 16:25

네, openwrt 하. .

요즘 wrt 제공할 것을 가지고 있는 읽기 설정 인터페이스 하= =

글쓴이 Ki 작성일 2015-01-21 16:26