该程序将检查今天是否是星期天,我正在考虑将其输出为字符串"$(date|cut -d ' ' -f 1)"
,然后将两个字符串进行比较
#!/bin/bash
datetoday="$(date|cut -d ' ' -f 1)"
echo "${datetoday}"
s2="Sun"
if [ "${datetoday}" == "$s2" ]
then
echo "weekend"
else
echo "not weekend"
fi
答案 0 :(得分:0)
date
可以使用%a
(星期日)和%A
(星期日)输出您的工作日。
他们两个都足够:
#!/bin/bash
today="$(date +%a)"
sun="Sun"
[ "${today}" = "${sun}" ] && printf "weekend\n" || printf "not weekend\n"
exit 0
您可以轻松地使用%A
将sun
设置为Sunday
而不是Sun
(sun="Sunday"
)
如果需要整天检查,可以将测试与案例语句交换,如下所示:
#!/bin/bash
today="$(date +%a)"
case "${today}" in
Mon|Monday)
printf "not weekend\n"
;;
### etc.
Sun|Sunday)
printf "weekend\n"
;;
esac
exit 0
编辑:正如@tinita所说,如果您未设置正确的语言环境,则可能无法将日期与“星期天”匹配(例如,EG法语为“ Dimanche”,意大利语为“ Domenica”)。 / p>
您可以避免更改语言环境,或使用其他date
选项。
实际上,date +%u
会给您一个1到7之间的数字,其中1是星期一。
#!/bin/bash
today="$(date +%a)"
[ "${today}" -eq 7 ] && printf "weekend\n" || printf "not weekend\n"
exit 0
@chepner指出的另一件事是,如果您正在将输出写入文件,而文件系统中没有足够的空间来写入“ weekend \ n”(8字节),则快捷方式a && b || c
将无法正常工作。
撇开一边,确实的确,快捷方式不是发出if
语句的正确方法,您应该始终喜欢规范的方法:
#!/bin/bash
today="$(date +%a)"
if [ "${today}" -eq 7 ]; then
printf "weekend\n"
else
printf "not weekend\n"
fi
exit 0