大作业要求: 一、使用linux下的shell编程,创建 /home/my.sh 文件,实现以下功能: 1、在 /home 目录下创建班级名称目录,名称为:21大数据A班 2、创建用户账号(账号名为学生的姓名拼音全拼,如张三的拼音全拼为 zhangsan),默认密码为 123456,用户主目录为 /home/21大数据A班/学号,全名为张三 3、通过输入参数形式实现,如 sh my.sh 21大数据A班 张三 zhangsan 10001 4、将1、2二步使用函数方式进行封装,函数名分别为 func_createFolder、func_createUser
时间: 2024-02-25 20:54:00 浏览: 73
这是一个和之前类似的问题,我可以提供相同的答案。您可以使用以下代码实现:
```bash
#!/bin/bash
# 创建班级目录
function func_createFolder {
folder="/home/$1"
if [ ! -d "$folder" ]; then
mkdir "$folder"
fi
}
# 创建用户账号
function func_createUser {
username="$3"
userhome="/home/$1/$2"
if [ ! -d "$userhome" ]; then
mkdir "$userhome"
fi
if id "$username" >/dev/null 2>&1; then
echo "用户 $username 已存在"
else
useradd -d "$userhome" -m -s /bin/bash -c "$4" "$username"
echo "$username:123456" | chpasswd
echo "用户 $username 创建成功"
fi
}
# 输入参数
class=$1
name=$2
username=$3
sid=$4
fullname=$name
# 将姓名转换为拼音全拼
if command -v pinyin >/dev/null 2>&1; then
fullname=$(echo "$name" | pinyin -s '' -j '')
fi
# 创建班级目录
func_createFolder "$class"
# 创建用户账号
func_createUser "$class" "$sid" "$username" "$fullname"
```
使用时,将以上代码保存为 my.sh 文件,然后在终端中运行:
```
sh my.sh 21大数据A班 张三 zhangsan 10001
```
其中,第一个参数是班级名称,第二个参数是学生姓名,第三个参数是账号名,第四个参数是学生编号。
阅读全文