shell脚本启动时首先输出一些初始信息,包括程序名称与编者学号、当前的日期与时间、适当的问候语等,格式自定。
时间: 2023-12-24 22:02:10 浏览: 25
好的,这是一个常见的shell脚本开头格式,你可以使用以下代码作为参考:
```bash
#!/bin/bash
# 程序名称与编者学号
program_name="my_shell_script"
author_id="123456789"
# 当前日期与时间
date=$(date +%Y-%m-%d)
time=$(date +%H:%M:%S)
# 问候语
greeting="Hello, welcome to my shell script!"
echo "----------------------------------------"
echo "Program: $program_name"
echo "Author: $author_id"
echo "Date: $date Time: $time"
echo ""
echo "$greeting"
echo "----------------------------------------"
```
在上面的代码中,我们使用了以下几个命令:
- `#!/bin/bash`:指定使用Bash作为解释器。
- `date +%Y-%m-%d`:获取当前日期,格式为年-月-日。
- `date +%H:%M:%S`:获取当前时间,格式为小时:分钟:秒。
- `echo`:输出信息到控制台。
你可以根据需要修改程序名称、编者学号、问候语等内容,然后将代码保存为一个shell脚本文件,例如`my_script.sh`,然后使用`./my_script.sh`命令执行它。
相关问题
用shell设计一个考勤模拟程序, 1、脚本启动时首先输出一些初始信息,包括程序名称与编者学号、当前的日期与时间、适当的问候语等,格式自定。例如: ***** routine v1.0 by 202202098 ***** Good Morning!用户名 Today is Tue June 12 19:25:30 CST 2023 2、考勤程序运行后,首先验证用户输入的工号和密码。如果正确则成功登录系统;如果错误,则提示用户重新输入,如果输入密码超过3次,提示用户联系管理员。工号和密码信息保存在userinfo.dat中。 用户登录成功后,实现如下功能选择界面: ********* MENU ********* 欢迎使用XXX考勤系统! 1-上班签到 2-下班签出 3-缺勤信息查阅 4-退出
以下是考勤模拟程序的Shell脚本代码:
```shell
#!/bin/bash
# 输出初始信息
echo "***** routine v1.0 by 202202098 *****"
echo "Good Morning!$USER"
echo "Today is $(date +"%a %b %d %T %Z %Y")"
# 验证用户工号和密码
count=1
while [ $count -le 3 ]
do
read -p "请输入工号:" id
read -s -p "请输入密码:" password
echo ""
result=$(grep "^$id:" userinfo.dat | cut -d ":" -f 2)
if [ "$result" == "$password" ]
then
echo "登录成功!"
break
else
echo "工号或密码错误,请重新输入!"
count=$((count+1))
fi
done
if [ $count -eq 4 ]
then
echo "输入密码超过3次,请联系管理员!"
exit
fi
# 显示菜单
while true
do
echo "********* MENU *********"
echo "欢迎使用XXX考勤系统!"
echo "1-上班签到 2-下班签出"
echo "3-缺勤信息查阅 4-退出"
read -p "请输入您的选择:" choice
case $choice in
1)
echo "上班签到成功!"
;;
2)
echo "下班签出成功!"
;;
3)
echo "查阅缺勤信息……"
;;
4)
echo "退出程序……"
exit
;;
*)
echo "无效的选择,请重新输入!"
;;
esac
done
```
说明:
- 使用 `echo` 命令输出初始信息,包括程序名称、编者学号、当前日期、时间和问候语。
- 使用 `grep` 命令查找用户输入的工号在 `userinfo.dat` 文件中对应的密码,并使用 `cut` 命令提取密码字段。
- 使用 `while` 循环验证用户输入的工号和密码,最多允许输入3次。
- 如果输入密码超过3次,则提示用户联系管理员并退出程序。
- 使用 `while` 循环显示菜单,并使用 `read` 命令获取用户的选择。
- 使用 `case` 命令根据用户的选择执行相应的操作,包括上班签到、下班签出、查阅缺勤信息和退出程序。
写一段shell脚本,判断目标日期与当前时间差了多少天
好的,以下是能够实现该功能的 shell 脚本:
```shell
#!/bin/bash
# 输入目标日期,格式为YYYY-MM-DD
read -p "请输入目标日期(YYYY-MM-DD): " target_date
# 将目标日期转换为时间戳
target_stamp=$(date -d "$target_date" +%s)
# 获取当前时间戳
now_stamp=$(date +%s)
# 计算目标日期与当前时间的时间差(单位为秒)
diff=$((target_stamp-now_stamp))
# 将时间差转换为天数
diff_days=$((diff/86400))
echo "目标日期与当前时间差了 $diff_days 天"
```
这段脚本要求用户输入目标日期,然后将其转换为时间戳,获取当前时间戳,计算两者的时间差,最后将时间差转换为天数并输出。注意,这里的时间差是以秒为单位,需要将其转换为天数时需要除以 86400(一天有 86400 秒)。