UNIX下SH的实现源码

源代码在线查看: cal2day.bash

软件大小: 2100 K
上传用户: RR15133422795
关键词: UNIX 源码
下载地址: 免注册下载 普通下载 VIP

相关代码

				#!/bin/bash				# cal2day - "parse" appropriate calendar output to match date number				#	    with day name.				#				# usage: cal2day month day [year]				#				# ORIGINAL *TAG:33239 3:Dec 9 1997:0755:sh.d/cal2day:				#				# Obtained from usenet				#				# Converted to bash v2 syntax by Chet Ramey 								#1 PARSE OPTIONS				while getopts :dls _inst				do	case $_inst in					(d)	format='%1d%.0s\n' ;;		# 0, 1, ..., 7					(l)	format='%0.s%-s\n' ;;		# Sunday, Monday, ..., Saturday					(s)	format='%0.s%-.3s\n' ;;		# Sun, Mon, ..., Sat					esac				done				shift $((OPTIND-1))								#2 PARAMETER VALUES				((!$#)) && set -- $(date '+%m %d')				: ${format:='%0.s%-.3s\n'}				: ${1:?missing month parameter [1-12]}				: ${2:?missing day parameter [1-31]}								#3 CALCULATE DAY-OF-WEEK FROM DATE				cal $1 ${3:-$(date +%Y)} | gawk -FX '				BEGIN	{ day="Sunday   Monday   Tuesday  WednesdayThursday Friday   Saturday"					  sub(/^0/, "", daynum)					  dayre="(^| )" daynum "( |$)"					}				#NR==2	{ print length($0) }				NR==1 || NR==2 \					{ next }				dayre	{ if (match($0, dayre))					  {	#print RSTART, RLENGTH, substr($0, RSTART, RLENGTH)						if (daynum						exit					  }					}				END	{ # 20/21 char width assumed					  printf format, RSTART/3, substr(day, RSTART*3+1, 9)					}				' daynum=$2 format=$format -								exit 0							

相关资源