pax*_*blo 67
您可以使用:
pax> if [[ $(date +%u) -gt 5 ]] ; then
> echo weekend
> fi
Run Code Online (Sandbox Code Playgroud)
date +%u为您提供从星期一(1)到星期日(7)的星期几.如果它大于5(星期六= 6或星期日= 7),那就是周末.
所以你可以把这样的东西放在脚本的顶部:
if [[ $(date +%u) -gt 5 ]] ; then
echo 'Sorry, you cannot run this program today.'
exit
fi
Run Code Online (Sandbox Code Playgroud)
要检查它是否是工作日,请使用:
if [[ $(date +%u) -lt 6 ]] ; then
Run Code Online (Sandbox Code Playgroud)
gho*_*g74 13
case "$(date +%a)" in
Sat|Sun) echo "weekend";;
esac
Run Code Online (Sandbox Code Playgroud)
这实际上是一个令人难以置信的难题,因为谁说"周末"意味着周六和周日......什么构成"周末"实际上可能因文化而异(例如在以色列,人们在星期天工作,周五休息).虽然您可以使用该date命令获取日期,但是如果要以适用于所有用户的方式实现此功能,则需要存储一些附加数据,以指示每个语言环境的周末构成.如果你只针对一个国家,那么在其他答案中提出的解决方案将起作用......但是要记住这里做出的假设总是好的.
使用Perl的localtime运算符.
当地时间
将time函数返回的时间转换为9元素列表,并分析本地时区的时间.通常使用如下:
Run Code Online (Sandbox Code Playgroud)# 0 1 2 3 4 5 6 7 8 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);...
$wday是星期几,0表示星期日,3表示星期三.
例如:
$ date
Sun Aug 15 20:27:29 CDT 2010
$ perl -le 'my $wday = (localtime)[6];
print $wday >= 1 && $wday <= 5 ? "weekday" : "weekend"'
weekend