gpt4 book ai didi

linux - Unix Shell 脚本 - 命令中的错误

转载 作者:太空宇宙 更新时间:2023-11-04 04:01:35 24 4
gpt4 key购买 nike

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

命令是 $c5/n*/4*/s*/today

这些只是一些目录,今天是我的文件的名称。当我输入该命令时,我看到了我想看到的内容,这是我的脚本的输出,那么我的命令中怎么可能有错误。

#!/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 的“ fork ”。您的脚本不使用 cmdline 的任何输入:

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

=> 删除该 block 。

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

daynumber=`date +%d`

额外奖励:cal 可以默认突出显示日期,请查看 cal 手册页。

turn off highlighting ( -h)

关于linux - Unix Shell 脚本 - 命令中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22748737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com