学员管理系统(包含判断用户是否合同)shell脚本
时间: 2023-06-29 20:07:02 浏览: 89
学员管理系统
以下是一个简单的学员管理系统 shell 脚本,包含判断用户是否合同的功能:
```bash
#!/bin/bash
# 用户信息存储文件
USER_FILE="users.txt"
# 检查用户是否存在
function check_user_exists() {
if grep -q "^$1:" "$USER_FILE"; then
return 0
else
return 1
fi
}
# 添加用户
function add_user() {
# 获取用户信息
echo "请输入用户信息:"
read -p "用户名:" username
read -p "密码:" password
read -p "是否有合同(Y/N):" has_contract
# 检查用户是否已存在
if check_user_exists "$username"; then
echo "用户已存在"
return 1
fi
# 写入用户信息到文件
echo "$username:$password:$has_contract" >> "$USER_FILE"
echo "添加用户成功"
}
# 删除用户
function delete_user() {
# 获取用户名
read -p "请输入要删除的用户名:" username
# 检查用户是否存在
if ! check_user_exists "$username"; then
echo "用户不存在"
return 1
fi
# 删除用户信息
sed -i "/^$username:/d" "$USER_FILE"
echo "删除用户成功"
}
# 修改用户密码
function change_password() {
# 获取用户名和新密码
read -p "请输入用户名:" username
read -p "请输入新密码:" new_password
# 检查用户是否存在
if ! check_user_exists "$username"; then
echo "用户不存在"
return 1
fi
# 修改密码
sed -i "s/^$username:[^:]*:/&$new_password:/" "$USER_FILE"
echo "修改密码成功"
}
# 判断用户是否有合同
function check_contract() {
# 获取用户名
read -p "请输入用户名:" username
# 检查用户是否存在
if ! check_user_exists "$username"; then
echo "用户不存在"
return 1
fi
# 获取用户信息
user_info=$(grep "^$username:" "$USER_FILE")
# 判断用户是否有合同
if echo "$user_info" | grep -q ":Y$"; then
echo "用户有合同"
return 0
else
echo "用户没有合同"
return 1
fi
}
# 主菜单
function main_menu() {
while true; do
echo "请选择操作:"
echo "1. 添加用户"
echo "2. 删除用户"
echo "3. 修改密码"
echo "4. 判断用户是否有合同"
echo "5. 退出"
read choice
case $choice in
1)
add_user
;;
2)
delete_user
;;
3)
change_password
;;
4)
check_contract
;;
5)
exit 0
;;
*)
echo "无效的选择"
;;
esac
done
}
# 启动程序
main_menu
```
在上述脚本中,我们通过 `grep` 命令来检查用户是否存在,并且在添加用户和修改密码时,使用了 `sed` 命令来修改用户信息文件。在判断用户是否有合同时,我们使用了 `grep` 命令来查找用户信息中是否包含 ":Y",来判断用户是否有合同。
阅读全文