繁体   English   中英

Unix Shell脚本-命令中的错误

[英]Unix Shell Scripting - Bug in command

这是我的Unix作业,我需要编写一个脚本来显示日历中的今天日期,这是我的代码和输出。 我的教授给了我分数,反馈是“修复命令中有错误”。 我似乎无法找出错误。 任何帮助都会很棒!

命令是今天$ c5 / n * / 4 * / s *

这些只是一些目录,而今天是我的文件名。 当我键入该命令时,我会看到要查看的脚本输出,然后在命令中出现错误。

#!/usr/dt/bin/dtksh

date
if [ $# -ge 1 ] ; then
exec $HOME/bin/cal $*
fi
#highlight today on this months calendar

daynumber=`date +%d`
#tput gets terminal specific characters, e.g. clear
rmso=`tput rmso` # get the chars for reverse video for this
smso=`tput smso` # terminal using tput

if [ $daynumber -lt 10 ] ; then
daynumber=" `echo $daynumber | sed 's/^0//`"
# daynumber=" `echo $daynumber | cut -c 2`"
fi

if cal | grep "$daynumber\$" > /dev/null; then
cal | sed "2,$ s/$daynumber/$smso$daynumber$rmso /"
else
cal | sed "2,$ s/$daynumber /$smso$daynumber$rmso /"
fi

输出... 30将突出显示,因为这是今天的日期。

Sun Mar 30 14:22:31 CDT 2014
   March 2014
 S  M Tu  W Th  F  S
                   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

问题是“编写一个脚本来显示日历中的今天的日期”

如果我理解正确,那么您正在建立cal的“分叉”。 您的脚本不使用任何来自cmdline的输入:

if [ $# -ge 1 ] ; then
exec $HOME/bin/cal $*
fi

=>删除该块。

它使用它作为今天的输入(这就是您想要的):

daynumber=`date +%d`

奖励:cal可以默认突出显示日期,请检查cal联机帮助。

关闭高亮显示(-h)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM