系统管理员如何计算系统管理员日?

时间:2021-07-20 18:21:22

标签: sysadmin gnu-coreutils

系统管理员日是 7 月的最后一个星期五。

系统管理员往往不会离开他们所属的终端太远。

系统管理员了解 man {,/usr}/bin/*

系统管理员有时会使用 /usr/bin/* 中的解释性语言。

3 个答案:

答案 0 :(得分:1)

这个系统管理员想出了:

date -d $(date +%Y)-07-$(ncal -d $(date +%Y)-07-01 | awk '/^Fr /{print $NR;}') +'%F'

在@tuberous-potato 的回答之后我想出了

echo $(date +%Y-%m)-$(ncal 7 $(date +%Y) | awk '/^Fr/ {print $NF}')

答案 1 :(得分:1)

cal 7 $(date +%Y) | awk '{print $6}' | grep . | tail -n 1

答案 2 :(得分:0)

不完全是单行的,并且建立在其他答案的基础上 - 这将获得下一个系统管理员日,而不仅仅是今年。

#!/bin/bash

sysadmin_date() {
  year=$1
  echo $year-07-$(cal -h 7 $year | cut -d' ' -f6 | grep . | tail -1)
}

next_sysadmin_date() {
  this_years_sysadmin_date=$(sysadmin_date $(date +%Y))
  next_years_sysadmin_date=$(sysadmin_date $(expr $(date +%Y) + 1))
  today=$(date +%Y-%m-%d)

  [[ $today > $this_years_sysadmin_date ]] && echo $next_years_sysadmin_date || echo $this_years_sysadmin_date

  [[ $today == $this_years_sysadmin_date ]] && >&2 echo "Happy Sysadmin Day! ?"
}

next_sysadmin_date