Shell 看看今天是不是某个特定的日期

Shell 看看今天是不是某个特定的日期,shell,Shell,我想看看这一天是不是星期天,但由于某种原因,我无法让它工作 [[ "date '+%a'" == "Sun" ]] && echo "Today is Sunday" 使用$(…)执行命令并以字符串形式返回输出: [[ $(date '+%a') == "Sun" ]] 您可以使用日期+%u获取一周的天数。。。1-7星期一是1,这样你就不应该对非英语地区有任何问题了完成: case "$(date '+%a')" in "Sun" ) echo "sunday";; esac

我想看看这一天是不是星期天,但由于某种原因,我无法让它工作

[[ "date '+%a'" == "Sun" ]] && echo "Today is Sunday"
使用
$(…)
执行命令并以字符串形式返回输出:

[[ $(date '+%a') == "Sun" ]]

您可以使用日期+%u获取一周的天数。。。1-7星期一是1,这样你就不应该对非英语地区有任何问题了

完成:
case "$(date '+%a')" in "Sun" ) echo "sunday";; esac
如果您有多个地区,我建议您使用
+%u
cf.
man date

%u一周中的某一天(1..7);1号星期一

今天是星期一:

date +%u
1
if [[ $(date +%u) -eq 1 ]]; then
  echo 'ho no :c'
fi
ho no :c

hth

最好让命令“LC_ALL=C date+'%a'”,否则一旦有人使用非英语语言环境集运行shell脚本,它就会停止工作。或者更好的是,使用
%w
这样它会给你一个数字。所以下一个问题是如何在cron中运行它。基本上,我希望每个月的第三个星期天运行一个特定的脚本,因此需要检查日期是否在星期天。
[[$(date'+%u')==“7”]]&&echo“今天是星期天”
您指出这一点太好了。这要简单得多。
date +%u
1
if [[ $(date +%u) -eq 1 ]]; then
  echo 'ho no :c'
fi
ho no :c