让bash脚本节日意识到

时间:2011-11-24 18:37:37

标签: bash shell

我正准备写一个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)-release

2 个答案:

答案 0 :(得分:1)

holiday.txt的例子

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

答案 1 :(得分:0)

除了语法之外我觉得很好,除了我不确定你想要屏幕上的输出。你可能更喜欢

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

在原始代码中,我认为您需要交换;then并在[之前添加空格。

此外,如果代码很短

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

可能更方便的方法。