在shell脚本中如何收集用户输入的基本信息(姓名,性别,年龄),如果不输入则一直提示输入,并根据用户的信息输出相对应的内容
时间: 2024-04-30 20:17:28 浏览: 12
可以使用如下代码来收集用户输入的基本信息:
```shell
#!/bin/bash
# 定义变量用于存储用户输入的信息
name=""
gender=""
age=""
# 循环提示用户输入信息,直到输入完整为止
while [[ -z $name || -z $gender || -z $age ]]; do
read -p "请输入您的姓名:" name
read -p "请输入您的性别(男/女):" gender
read -p "请输入您的年龄:" age
# 判断用户是否输入完整信息
if [[ -z $name || -z $gender || -z $age ]]; then
echo "请完整输入您的基本信息!"
fi
done
# 根据用户的信息输出相对应的内容
if [[ $gender == "男" ]]; then
echo "${name}先生,您已经${age}岁了,祝您健康快乐!"
else
echo "${name}女士,您已经${age}岁了,祝您青春永驻!"
fi
```
通过循环提示用户输入信息,并且使用 `-z` 判断用户是否输入完整信息。如果用户没有输入完整信息,则会一直提示输入。最后根据用户的信息输出相对应的内容。
相关问题
写一个shell脚本,收集用户输入的基本信息(姓名,性别,年龄),如果不输入则一直提示输入,并根据用户的信息输出相对应的内容
Sure, 我可以帮您解决这个问题。以下是此脚本的实现方法:
```
#!/bin/bash
# 初始化变量
name=""
gender=""
age=""
# 循环输入基本信息
while [ -z "$name" ]; do
read -p "请输入您的姓名: " name
done
while [ -z "$gender" ]; do
read -p "请输入您的性别: " gender
done
while [ -z "$age" ]; do
read -p "请输入您的年龄: " age
done
# 根据用户信息输出相应的内容
if [ "$gender" == "男" ]; then
echo "欢迎您,$name 先生!您的年龄是 $age 岁。"
else
echo "欢迎您,$name 女士!您的年龄是 $age 岁。"
fi
```
这个脚本通过 `read` 命令来循环读取用户输入的基本信息,如果用户没有输入相应的信息,就会一直提示用户输入。然后根据用户的性别来判断输出的称呼。注意:为保证用户的隐私安全,您输入的信息将不会记录在任何地方,并且在本次会话结束后会被清除。
用linux shell写一个脚本收集用户输入的基本信息(姓名,性别,年龄),如不输入一直提示输入; 2.最后根据用户的年龄信息输出相对应的内容(少年,青年,中年,老年)
好的,我可以帮您实现这个脚本。以下是脚本的代码:
```bash
#!/bin/bash
# 从用户输入中获取基本信息
while true; do
read -p "请输入您的姓名:" name
read -p "请输入您的性别(男/女):" gender
read -p "请输入您的年龄:" age
# 检查用户是否输入了所有必要信息
if [[ -z "$name" || -z "$gender" || -z "$age" ]]; then
echo "请确保所有信息都已输入!"
else
break
fi
done
# 根据用户的年龄输出相对应的内容
if [[ "$age" -lt 18 ]]; then
echo "您是少年。"
elif [[ "$age" -lt 35 ]]; then
echo "您是青年。"
elif [[ "$age" -lt 60 ]]; then
echo "您是中年。"
else
echo "您是老年。"
fi
```
脚本会在用户输入所有必要信息之前一直提示输入。然后,它将根据用户的年龄输出相应的内容。请注意,该脚本假定用户会输入有效的年龄值。如果用户输入非数字值,则会出现错误。如果需要,可以添加一些错误检查来避免这种情况。