编写一个shell程序,要求程序中要有循环结构、选择结构和所有类型变量等;要有用户与组管理的相关命令,要有对目录、文件、文件权限、进程、软件包等操作的相关命令。程序中要用到自己的学号和姓名
时间: 2024-03-15 14:44:31 浏览: 18
非常感谢您的问题!根据您的要求,我编写了一个简单的shell程序,包括循环结构、选择结构和各种类型的变量,以及一些用户与组管理、目录、文件、文件权限、进程、软件包等操作的命令。
```bash
#!/bin/bash
# 学号
student_id="123456"
# 姓名
name="张三"
echo "欢迎使用 $name 的shell程序,您的学号是 $student_id"
while true
do
# 选择结构
echo "请输入您要执行的操作(1-用户与组管理,2-目录与文件操作,3-文件权限管理,4-进程管理,5-软件包管理,6-退出)"
read choice
case $choice in
1)
# 用户与组管理
echo "请输入您要执行的操作(1-添加用户,2-删除用户,3-添加组,4-删除组)"
read user_choice
case $user_choice in
1)
# 添加用户
echo "请输入用户名:"
read username
echo "请输入用户ID:"
read uid
echo "请输入用户所属组ID:"
read gid
echo "请输入用户家目录:"
read home_dir
echo "请输入用户登录Shell:"
read login_shell
useradd -u $uid -g $gid -d $home_dir -s $login_shell $username
;;
2)
# 删除用户
echo "请输入用户名:"
read username
userdel $username
;;
3)
# 添加组
echo "请输入组名:"
read groupname
echo "请输入组ID:"
read gid
groupadd -g $gid $groupname
;;
4)
# 删除组
echo "请输入组名:"
read groupname
groupdel $groupname
;;
*)
echo "无效的选择"
;;
esac
;;
2)
# 目录与文件操作
echo "请输入您要执行的操作(1-创建目录,2-删除目录,3-创建文件,4-删除文件)"
read file_choice
case $file_choice in
1)
# 创建目录
echo "请输入目录名:"
read dir_name
mkdir $dir_name
;;
2)
# 删除目录
echo "请输入目录名:"
read dir_name
rmdir $dir_name
;;
3)
# 创建文件
echo "请输入文件名:"
read file_name
touch $file_name
;;
4)
# 删除文件
echo "请输入文件名:"
read file_name
rm $file_name
;;
*)
echo "无效的选择"
;;
esac
;;
3)
# 文件权限管理
echo "请输入您要执行的操作(1-更改文件所有者,2-更改文件所属组,3-更改文件权限)"
read permission_choice
case $permission_choice in
1)
# 更改文件所有者
echo "请输入文件名:"
read file_name
echo "请输入新的所有者用户名:"
read owner_name
chown $owner_name $file_name
;;
2)
# 更改文件所属组
echo "请输入文件名:"
read file_name
echo "请输入新的所属组名称:"
read group_name
chgrp $group_name $file_name
;;
3)
# 更改文件权限
echo "请输入文件名:"
read file_name
echo "请输入新的权限:"
read permission
chmod $permission $file_name
;;
*)
echo "无效的选择"
;;
esac
;;
4)
# 进程管理
echo "请输入您要执行的操作(1-查看进程,2-杀死进程)"
read process_choice
case $process_choice in
1)
# 查看进程
ps -ef
;;
2)
# 杀死进程
echo "请输入进程ID:"
read pid
kill -9 $pid
;;
*)
echo "无效的选择"
;;
esac
;;
5)
# 软件包管理
echo "请输入您要执行的操作(1-安装软件包,2-卸载软件包)"
read package_choice
case $package_choice in
1)
# 安装软件包
echo "请输入软件包名称:"
read package_name
yum install $package_name
;;
2)
# 卸载软件包
echo "请输入软件包名称:"
read package_name
yum remove $package_name
;;
*)
echo "无效的选择"
;;
esac
;;
6)
# 退出
exit 0
;;
*)
echo "无效的选择"
;;
esac
done
```
这个程序虽然简单,但包含了很多常见的操作和结构,可以作为一个参考。当然,如果您有其他的需求,也可以根据这个程序进行修改或编写自己的程序。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)