9.编写shell脚本test09.sh实现如下功能,依次提示用户输入自己姓名和身份证号(输入指令:read -p),根据输入的内容生成info.txt储存在当前目录下mytest09目录中。Info.txt的格式如下图(红色部分为需要自动生成的内容)。
时间: 2024-03-29 09:41:34 浏览: 9
可以使用如下的shell脚本实现:
```bash
#!/bin/bash
# 提示用户输入姓名和身份证号
read -p "请输入您的姓名:" name
read -p "请输入您的身份证号码:" idcard
# 生成info.txt文件
echo "姓名:$name" > ./mytest09/info.txt
echo "身份证号码:$idcard" >> ./mytest09/info.txt
echo "生成时间:$(date '+%Y年%m月%d日 %H:%M:%S')" >> ./mytest09/info.txt
```
该脚本首先提示用户输入姓名和身份证号,然后使用`echo`命令将姓名、身份证号码和生成时间依次写入info.txt文件中。注意:该脚本假设当前目录下已经存在mytest09目录,如果不存在该目录,则需要先创建该目录。
相关问题
9.编写shell脚本test09.sh实现如下功能,依次提示用户输入自己姓名和身份证号(输入指令:read -p),根据输入的内容生成info.txt储存在当前目录下mytest09目录中。Info.txt的格式如下:姓名: 性别: 年龄: 地址:
好的,以下是test09.sh的代码实现:
```bash
#!/bin/bash
# 提示用户输入姓名和身份证号
read -p "请输入您的姓名:" name
read -p "请输入您的身份证号:" id_card
# 根据身份证号计算出年龄和性别
year=$(echo $id_card | cut -c 7-10)
month=$(echo $id_card | cut -c 11-12)
day=$(echo $id_card | cut -c 13-14)
sex=$(echo $id_card | cut -c 17)
now_year=$(date +%Y)
age=$(expr $now_year - $year)
if [[ $month -gt $(date +%m) || ($month -eq $(date +%m) && $day -gt $(date +%d)) ]]; then
age=$(expr $age - 1)
fi
if [[ $sex -eq 1 ]]; then
gender="男"
else
gender="女"
fi
# 生成info.txt文件并保存到mytest09目录中
mkdir -p mytest09
echo "姓名:$name 性别:$gender 年龄:$age 地址:" > mytest09/info.txt
echo "信息已保存到mytest09/info.txt文件中。"
```
脚本的实现步骤如下:
1. 使用read命令提示用户输入姓名和身份证号,并将输入的内容保存到变量name和id_card中。
2. 根据身份证号计算出用户的年龄和性别。
3. 使用mkdir命令创建mytest09目录(如果不存在)。
4. 使用echo命令将用户的信息保存到mytest09/info.txt文件中。
5. 输出保存成功的提示信息。
使用该脚本时,只需要在终端中输入以下命令即可:
```bash
$ ./test09.sh
```
然后根据提示输入姓名和身份证号即可。
9. 编写shell脚本test09.sh实现如下功能,依次提示用户输入自己姓名和身份证号(输入指令:read -p),根据输入的内容生成info.txt储存在当前目录下mytest09目录中。Info.txt的格式如下图(红色部分为需要自动生成的内容)。姓名:张三 性别:男 年龄:21 住址山东省济南市
好的,我已经明白了你的问题。以下是 `test09.sh` 脚本的实现代码:
```shell
#!/bin/bash
# 提示用户输入姓名和身份证号
read -p "请输入您的姓名:" name
read -p "请输入您的身份证号:" id_card
# 从身份证号中提取年龄和住址信息
age=$(echo $(($(date +%Y)-${id_card:6:4})))
address=${id_card:0:6}
# 将信息写入 info.txt 文件
mkdir -p mytest09
echo "姓名:$name" > mytest09/info.txt
echo "性别:$(if [ ${id_card:16:1} -eq 1 ]; then echo "男"; else echo "女"; fi)" >> mytest09/info.txt
echo "年龄:$age" >> mytest09/info.txt
echo "住址:$(curl -s "http://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=$address&resource_id=6006" | awk -F '"' '{print $4}')" >> mytest09/info.txt
echo "信息已保存至 mytest09/info.txt"
```
脚本实现的功能:
1. 提示用户输入姓名和身份证号。
2. 从身份证号中提取出年龄和住址信息。
3. 使用 `mkdir -p` 命令创建 `mytest09` 目录(如果目录不存在)。
4. 将生成的个人信息以指定的格式写入 `info.txt` 文件,并保存到 `mytest09` 目录中。
5. 输出提示信息。
需要注意的是,住址信息是通过调用百度接口获取的,这里使用了 `curl` 和 `awk` 命令来提取接口返回的 JSON 数据中的地址信息。如果你的系统没有安装 `curl` 命令,需要先安装。
使用方法:
1. 将上述代码保存到 `test09.sh` 文件中。
2. 在终端中切换到 `test09.sh` 文件所在的目录。
3. 运行命令 `chmod +x test09.sh`,将脚本文件变为可执行文件。
4. 运行命令 `./test09.sh`,按照提示输入姓名和身份证号即可。