#!/bin/bash # %-d strips the leading zero so "06" becomes "6" — needed for bracket matching below. today=$(date +%-d) # %u is ISO weekday: 1=Monday … 7=Sunday. weekdaynum=$(date +%u) weekday="" # Map ISO weekday number to the two-letter abbreviation that `cal` prints in its header. if [[ $weekdaynum -eq 1 ]]; then weekday="Mo" elif [[ $weekdaynum -eq 2 ]]; then weekday="Tu" elif [[ $weekdaynum -eq 3 ]]; then weekday="We" elif [[ $weekdaynum -eq 4 ]]; then weekday="Th" elif [[ $weekdaynum -eq 5 ]]; then weekday="Fr" elif [[ $weekdaynum -eq 6 ]]; then weekday="Sa" elif [[ $weekdaynum -eq 7 ]]; then weekday="Su" fi echo ====================== date '+%A, %d.%m.%Y' echo ====================== # -m: start week on Monday. `sed 's/^/ /'` indents every line for padding. # The two substitutions wrap today's date number and the current weekday column # in square brackets so Eww can highlight them via CSS class matching. cal -m | sed -e 's/^/ /' | sed "s/ $today /[$today]/" | sed "s/ $weekday /[$weekday]/"