2011-11-24 2 views
1

나는 bash 스크립트 (bash 초보자)를 작성하려고했다. 스크립트의 목적은 다른 일부 명령 (즉, 스크립트의 작업 부분)이 휴일에 실행되지 않도록하는 요구 사항을 적용하는 것입니다.bash 스크립트를 휴일로 인식시키기

나는 online 아래의 코드 조각을 발견 : 나는 떠들썩한 파티 초보입니다 인정하지만

#!/bin/bash 
grep -i date holiday.txt 
if[ $? -ne 0] then; 
#script to run the jobs 
exit 
fi 

, 나는이 스크립트 잘못된 점을 발견 할 수없는 것 - 아직 동시에, 조금 보이는 너무 단순한 - 아직 훈련받지 않은 눈으로는 볼 수없는 "잡았다"가 있습니까? 나중에 나에게 뒤를 물어 챌 것인가?

내가 GNU bash는 버전 4.1.5 (1)을 실행하고는

+0

모든 휴일이 같은 날짜에 매년 수있는 것은 아닙니다, 예를 들어, 부활절, 노동절. 그런 것들을 설명하기 위해 매년 holiday.txt를 재생성해야합니다. –

답변

1

예를

 
2011-11-25 // testing purpose 
2011-12-25 
2012-01-01 
if test $(grep $(date +%Y-%m-%d) holiday.txt -ic) -ne 0 
then 
    # your action list 
fi 
+0

샘플 데이터 세트에 감사드립니다. 날짜 형식에 대해 궁금합니다. –

0

구문을 제외하고, 나에게 잘 보이는 내가 너희를 화면에 출력을 원하는 확실하지 않다 제외하고 -release. 당신은 당신이 ;then를 교환하고 [ 전에 공간을 추가 할 필요가 있다고 생각 원래 코드에서

if ! grep -q -i date holiday.txt ; then 
    true 
    exit 
fi 

을 선호 할 수 있습니다. 또한

, 코드가 그것을 할 수 어쩌면 더 편리한 방법은

grep -q -i date holiday.txt || somethingbeingdone 

짧은 경우. holiday.txt의

관련 문제