使用date,我可以将周数转换为 1 到 7 之间的整数,例如:
$ date -d "Thursday" +%u
4
Run Code Online (Sandbox Code Playgroud)
但是如果我想执行反向操作呢?就像是,
$ date [options] [+format]
Thursday
Run Code Online (Sandbox Code Playgroud)
如果不能使用 date 也没关系,我也可以使用其他程序。这里力求简洁。
您可以获得下周日的日期,添加N天数并打印该特定日期的日期名称:
getdayname () {
nextplus=$(date -d "next Sunday +$1 days")
date -d "${nextplus}" '+%A'
}
Run Code Online (Sandbox Code Playgroud)
并运行getdayname 2,getdayname 7等等(假设gnu date)。
或者简单地使用一个数组而不使用date例如
getdayname () {
local days=( Sunday Monday Tuesday Wednesday Thursday Friday Saturday )
printf %s\\n ${days[$1]}
}
Run Code Online (Sandbox Code Playgroud)
尽管使用bash/ksh您需要printf %s\\n "${days[$1-1]}"(因为索引从 开始0),并且需要引号以避免 split+glob (也使用yash)。