ä»åãã³ãã³ãè£å®èšå®ã«ã€ããŠè¿°ã¹ããšãããããããŸã§ã¯1ã³ãã³ãã«å¯ŸããŠ1ã€ã®è£å®èšå®ãã¡ã€ã«ãäœæããŠãããä»åã¯è€æ°ã®ã³ãã³ãã«å¯ŸããŠ1ã€ã®è£å®èšå®ãã¡ã€ã«ãäœæããæ¹æ³ã«ã€ããŠè§£èª¬ããã
cal/ncalã³ãã³ãã®åºæ¬
ãŸããcalã³ãã³ããšncalã³ãã³ãã«ã€ããŠèª¬æãããcalã³ãã³ãã¯ããã³ãã1.1ã®ããã«ã«ã¬ã³ããŒãåºåããããã®ã³ãã³ãã§ãncalã³ãã³ãã¯ããã³ãã1.2ã®ããã«ã«ã¬ã³ããŒãåºåããã³ãã³ãã ããã®2ã€ã®ã³ãã³ãã«ã¯ãåºåã瞊æ¹åãæšªæ¹åããšããéããããã
ããã³ãã1.1 cal(1)ã³ãã³ãã§ã«ã¬ã³ããŒãåºå
% cal
July 2007
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
%
ããã³ãã1.2 ncal(1)ã³ãã³ãã§ã«ã¬ã³ããŒãåºå
% ncal
July 2007
Mo 2 9 16 23 30
Tu 3 10 17 24 31
We 4 11 18 25
Th 5 12 19 26
Fr 6 13 20 27
Sa 7 14 21 28
Su 1 8 15 22 29
%
inodeçªå·ã調ã¹ããšãããFreeBSDã®å Žåãcalãšncalã¯å®æ ã¯åãã³ãã³ãã ã£ã(ããã³ãã1.3)ãããã«ããã¥ã¢ã«ã§ã¯calã³ãã³ããšncalã³ãã³ãã«ã€ããŠã®è§£èª¬ã¯åãããŒãžã«æ²èŒãããŠãã(ãªã¹ã1.1)ãã€ãŸãããã®2ã€ã®ã³ãã³ãã¯åºå圢åŒã«åãããŠçšæããããã®ã§ãã³ãã³ãåãéãã ããšããããšãåããããŸãããªãã·ã§ã³ãããããè¥å¹²ç°ãªã£ãŠããã
ããã³ãã1.3 calãšncalã®å®æ ã¯åãããŒã¿ - FreeBSDã®å Žå
% ls -il =cal
25860577 -r-xr-xr-x 2 root wheel 16540 7 7 01:32 /usr/bin/cal
% ls -il =ncal
25860577 -r-xr-xr-x 2 root wheel 16540 7 7 01:32 /usr/bin/ncal
%
ãªã¹ã1.1 calãšncalã¯åãããã¥ã¢ã«ããŒãžã§èª¬æãããŠãã
CAL(1) FreeBSD General Commands Manual CAL(1)
NAME
cal, ncal -- displays a calendar and the date of easter
SYNOPSIS
cal [-jy] [[month] year]
cal [-j] -m month [year]
ncal [-jJpwy] [-s country_code] [[month] year]
ncal [-Jeo] [year]
DESCRIPTION
The cal utility displays a simple calendar in traditional format and ncal
offers an alternative layout, more options and the date of easter. The
new format is a little cramped but it makes a year fit on a 25x80 termi-
nal. If arguments are not specified, the current month is displayed.
The options are as follows:
...
ã¡ãªã¿ã«ããã³ãã1.3ã§äœ¿ã£ãŠããã=calããã=ncalããšãã£ãæå®ã¯ãzshã«ãã£ãŠã³ãã³ããã¹ã«çœ®æããããäŸãã°ããã®å Žåãªãã=calãã¯ã/usr/bin/calãã«ãã=ncalãã¯ã/usr/bin/ncalãã«å±éãããŠããå®è¡ãããŠãããtypeãwhichã³ãã³ãã䜿ã£ããã¿ãè£å®ã§èšè¿°ããŠããå¿ èŠããªããããããªã䟿å©ã«äœ¿ããèšè¿°æ¹æ³ã ã
宿 ã¯åãã ãååã¯éã£ãŠããã³ãã³ãããŸãã¯å®æ ãç°ãªã£ãŠããã䜿ã£ãŠããã©ã€ãã©ãªãåãã§ãã䌌ãã³ãã³ããªãã·ã§ã³ãæã£ãŠãããšãã£ãå Žåãªã©ã¯ãããããåå¥ã«è£å®èšå®ãã¡ã€ã«ãäœæããã®ã§ã¯ãªãã1ã€ã®è£å®èšå®ãã¡ã€ã«ã§è€æ°ã®ã³ãã³ãã«å¯Ÿå¿ããæ¹æ³ã䟿å©ã§ããã
cal/ncalã³ãã³ãã®è£å®èšå®
zsh 4.3.2ã«å梱ãããŠããcal/ncalã³ãã³ãã®è£å®èšå®ãã¡ã€ã«ãèŠãŠã¿ãã(ãªã¹ã2.1)ãããã¯ãç°¡æœãªãã¡ã€ã«ã§èªã¿ãããã
ãªã¹ã2.1 zsh 4.3.2ã«å梱ãããŠããcal/ncalã³ãã³ãã®è£å®èšå®ãã¡ã€ã«
#compdef cal ncal
local args
case $service in
cal)
args=(
'-3[three in a row]'
'-m[Monday as first day of the week]'
)
;;
ncal)
args=(
'-J[display Julian calendar]'
'-e[display date of western Easter]'
'-o[display date of orthodox Easter]'
'-p[assume as by ncal]'
'-s[country code]'
'-w[print number of the week below each column]'
)
;;
esac
_arguments "${args[@]}" \
'-j[display Julian days]' \
'-y[display a calendar for the current year]' \
'::month' \
':year'
ãŸãã¯1è¡ç®ã®#compdefæå®ã«æ³šç®ããããè£å®å¯Ÿè±¡ãšããã³ãã³ãåãšããŠcalãšncalã®äž¡æ¹ãåæãããŠããããã®ããã«ããŠè€æ°ã®ã³ãã³ããè£å®å¯Ÿè±¡ãšããå Žåã«ã¯ã³ãã³ãåãåæããã°ãã(ãªã¹ã2.2)ã
ãªã¹ã2.2 #compdefã§è€æ°ã®ã³ãã³ããæå®
#compdef cal ncal
次ã«ããŒã«ã«å€æ°ãšããŠargsãšããååã®å€æ°ãçšæããŠãããããŒã«ã«å€æ°ã«ããããšã§ã»ãã«åœ±é¿ãåºãªãããã«ããŠããç¹ã«æ³šç®ããŠããããè£å®èšå®ãæžãå Žåã®åºæ¬çãªãã¯ããã¯ã (ãªã¹ã2.3)ã
ãªã¹ã2.3 ããŒã«ã«å€æ°ãšããŠå€æ°ãçšæ
local args
ãã®æ¬¡ã§å®éã«è£å®å¯Ÿè±¡ãšããŠäœ¿ãããã³ãã³ãã«ãã£ãŠåŠçãåãæ¿ããŠãããããããã€ã³ãã ã倿°ãserviceãã«ããã®å Žåãªããcalãããncalããã®ã©ã¡ãããä¿æãããããšã«ãªãã®ã§ãå倿°ã䜿ã£ãŠåŠçãã¹ã€ãããããŠãããããã§ããããã®ã³ãã³ãã«ç¹æã®ãªãã·ã§ã³ããå ã»ã©çšæããããŒã«ã«å€æ°ãžä»£å ¥ããããã (ãªã¹ã2.4)ã
ãªã¹ã2.4 service倿°ã«ã³ãã³ããä¿æãããŠããã®ã§ãããã䜿ã£ãŠã³ãã³ãå¥ã®åŠçãèšè¿°
case $service in
cal)
calã³ãã³ãçšãªãã·ã§ã³ãargsããŒã«ã«å€æ°ãžä»£å
¥
;;
ncal)
ncalã³ãã³ãçšãªãã·ã§ã³ãargsããŒã«ã«å€æ°ãžä»£å
¥
;;
esac
ããšã¯_argumentsã®åŒæ°ã«å ã»ã©èšå®ããcal/ncalã³ãã³ãããããã®ãªãã·ã§ã³ãæå®ããŠããã®ãŸãŸå ±éã®è£å®èšå®ãèšè¿°ããã°å®äºã§ãã(ãªã¹ã2.5ããªã¹ã2.6)ã
ãªã¹ã2.5 ä»£å ¥ããããŒã«ã«å€æ°ãè£å®èšå®ã«è¿œå
_arguments "${args[@]}" \
ãªã¹ã2.6 åŒãç¶ãäž¡ã³ãã³ãã«å ±éã®ãªãã·ã§ã³ã远å
_arguments "${args[@]}" \
'-j[display Julian days]' \
'-y[display a calendar for the current year]' \
'::month' \
':year'
ããã§æ³šç®ãã¹ãã¯å€æ°ãserviceãã«è£å®å¯Ÿè±¡ã®ã³ãã³ãåãä»£å ¥ãããŠããããšã ããããåããã°åå²åŠçãå®çŸã§ãããåããããªèšå®ãè€æ°ã®ãã¡ã€ã«ã«åé¢ããŠãããšæ±ãã«ããã®ã§ãå倿°ã䜿ã£ãŠ1ã€ã®è£å®èšå®ãã¡ã€ã«ã«ããŒãžãããšããã ããã