2011-11-24 60 views
1

我正要着手编写bash脚本(作为bash新手)。该脚本的目的是强制执行一些其他命令(即脚本的工作部分)不能在节假日运行的要求。制作bash脚本假期

我发现下面online的片段:

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

虽然我承认我是一个新手的bash,我似乎无法找出什么毛病此脚本 - 但在同一时间,它看起来有点太“简单化”了 - 是否有我的未经训练的眼睛现在不能发现的“陷阱”,但后来会在后方咬我?

我正在GNU的bash,版本4.1.5(1)-release

+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

看起来好像没什么问题,除了语法和除了我不知道你想在屏幕上输出。您可能更

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

在原来的代码,我认为你需要换;then[之前添加空间。

而且,如果代码是短

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

也许更便捷的方式来做到这一点。 holiday.txt的