编写shell脚本test09.sh实现如下功能,依次提示用户输入自己姓名和身份证号(输入指令:read -p),根据输入的内容生成info.txt储存在当前目录下mytest09目录中。Info.txt的格式如下:姓名︰张三'性别:男年龄:21<' 地址:山东省济南市
时间: 2024-03-26 15:38:28 浏览: 57
以下是实现上述功能的test09.sh脚本的代码:
```bash
#!/bin/bash
# 提示用户输入姓名和身份证号
read -p "请输入您的姓名:" name
read -p "请输入您的身份证号:" idcard
# 将信息写入info.txt文件中
echo "姓名:$name
性别:$(echo ${idcard:16:1} | sed 's/[13579]/女/g; s/[02468]/男/g')
年龄:$(($(date +%Y)-${idcard:6:4}))
地址:$(echo ${idcard:0:6} | awk -F "" '{printf("%s%s年%s月%s日\n",$1$2"省",$3$4,$5$6,$7$8)}')" > ./mytest09/info.txt
```
解释:
1. `#!/bin/bash` 表示该脚本使用bash解释器执行。
2. `read -p "请输入您的姓名:" name` 提示用户输入姓名,并将输入保存到变量name中。
3. `read -p "请输入您的身份证号:" idcard` 提示用户输入身份证号,并将输入保存到变量idcard中。
4. `echo "姓名:$name` 将姓名写入info.txt文件中。
5. `echo ${idcard:16:1} | sed 's/[13579]/女/g; s/[02468]/男/g'` 根据身份证号的第17位判断性别,替换为“男”或“女”。
6. `$(($(date +%Y)-${idcard:6:4}))` 根据身份证号的出生年份计算年龄。
7. `echo ${idcard:0:6} | awk -F "" '{printf("%s%s年%s月%s日\n",$1$2"省",$3$4,$5$6,$7$8)}'` 根据身份证号的前6位获取地址信息,并格式化输出。
8. `> ./mytest09/info.txt` 将信息写入当前目录下的mytest09目录中的info.txt文件中。
需要注意的是,如果当前目录下不存在mytest09目录,需要先创建该目录。可以使用以下命令创建目录:
```bash
mkdir mytest09
```
阅读全文