如何使shell脚本自动化并读取当前时间?

时间:2013-10-23 17:17:11

标签: linux bash shell

我有一个非常重要的问题,我一直是cowsay(包装)的剑龙的粉丝,它读取财富,输入等等。所以我很自然地拥有这个雄伟的生物告诉我什么是非常重要的这一天是每一天。我使用用户输入做了以下脚本:

#!/bin/bash

selection=
until [ "$selection" = "0" ]; do
        echo ""
        echo "PROGRAM MENU"
        echo "1 - It's Monday!"
        echo "2 - It's Tuesday!"
        echo "3 - It's Wednesday!"
        echo "4 - It's Thursday!"
        echo "5 - It's Friday!"
        echo "6 - Custom input"
        echo "7 - Exit"
        echo ""
        echo -n "Enter selection: "
        read selection
        echo ""
        case $selection in
                1 ) cowsay -f stegosaurus "It's Monday!"
                 exit ;;
                2 ) cowsay -f stegosaurus "It's Tuesday!"
                 exit ;;
                3 ) cowsay -f stegosaurus "It's Wednesday!"
                 exit ;;
                4 ) cowsay -f stegosaurus "It's Thursday!"
                 exit ;;
                5 ) cowsay -f stegosaurus "It's Friday!"
                 exit ;;
                6 ) echo -n "custom input > "
                 read custom
                 cowsay -f stegosaurus "$custom"
                 exit ;;
                7 ) exit ;;
                * ) cowsay -f stegosaurus "Guess what day it is?"
                 exit ;;
        esac
done

然而,这是我在Linux发布的第一个脚本之一,我已准备好通过使其在当天自动更新来增强我的创作(如果可以的话,甚至可能是小时)。但是,到目前为止我还没能做到这一点。任何人都可以帮助我或指出我正确的方向吗?

我非常感谢任何建议,非常感谢!

3 个答案:

答案 0 :(得分:4)

cowsay -f stegosaurus "It's $(date +%A)"

查看GNU date documentation,了解有关如何格式化时间的更多示例。 e.g。

cowsay -f stegosaurus "It's $(date +%A) and the time is $(date +%r)"

答案 1 :(得分:1)

我相信你想要取代:

read selection

...与:

selection=`date +'%u'`

date实用程序与+'FORMAT'参数一起输出各种日期元素/格式。 %u格式符号转换为

  

星期几(1..7); 1代表星期一

完整文档位于:http://linux.about.com/od/commands/l/blcmdl1_date.htm

请记住,这也意味着* )案例场景不再适用。

注意:另一个答案 - "It's $(date +%A)" - 如果您希望输出只是“它是[星期几]!”,那么它是完美的。 - 如果您想保留一周中任何特定日期的自定义处理,请仅使用此答案。

答案 2 :(得分:1)

尝试日期命令:

$ date +%A
Wednesday