shell脚本练习
2024-10-19 06:30:55
写一个脚本:
1、设定变量FILE的值为/etc/passwd
2、依次向/etc/passwd中的每个用户问好,并显示对方的shell,形如:
Hello, root, your shell: /bin/bash
3、统计一共有多少个用户
#!/bin/bash
FILE="/etc/passwd"
num=`wc -l < $FILE`
echo "User count:$num"
for i in `seq $num`;do
Username=`head -$i $FILE |tail - | cut -d: -f1`
Shell=`head -$i $FILE | tail - | cut -d: -f7`
echo "Hello,$Username,your shell: $Shell"
done
写一个脚本:
1、添加10个用户user1到user10,密码同用户名;统计这10个用户的ID号之和;
#!/bin/bash
for i in `seq `; do
useradd user$i
echo "user$i" | passwd --stdin user$i
userid=`grep "user$i" /etc/passwd | cut -d: -f3`
sumid=$[ $sumid + $userid ]
done
echo "ID COUNT:$sumid"
写一个脚本,分别显示当前系统上所有默认shell为bash的用户和默认shell为/sbin/nologin的用户,并统计各类shell下的用户总数。显示结果形如:
BASH,3users,they are:
root,redhat,gentoo
NOLOGIN, 2users, they are:
bin,ftp
#!/bin/bash
BASH_C=`grep '/bin/bash' /etc/passwd | wc -l`
NOLOGIN_C=`grep '/sbin/nologin' /etc/passwd | wc -l`
echo "BASH,$BASH_C'users',they are:"
for i in `seq $BASH_C`;do
BASH_N="$BASH_N`grep '/bin/bash' /etc/passwd | head -$i | tail -1 | cut -d: -f1`,"
done
echo $BASH_N | sed 's/,$//'
echo "NOLOGIN,$NOLOGIN_C'users',they are:"
for i in `seq $NOLOGIN_C`;do
NOLOGIN_N="$NOLOGIN_N`grep '/sbin/nologin' /etc/passwd | head -$i | tail -1 | cut -d: -f1`,"
done
echo $NOLOGIN_N | sed 's/,$//'
写一个脚本:
1) 显示一个菜单给用户:
d|D) show disk usages.
m|M) show memory usages.
s|S) show swap usages.
*) quit.
2) 当用户给定选项后显示相应的内容;
3) 当用户选择完成,显示相应信息后,不退出;而让用户再一次选择,再次显示相应内容;除了用户使用quit;
#!/bin/bash
#创建函数s
s(){
echo '---------------------------Options------------------------------'
echo 'd|D) show disk usages.'
echo 'm|M) show memory usages.'
echo 's|S) show swap usages.'
*) quit.
#输入一个选项参数S
read -p 'Please input your select:' S
}
#调用函数s
s
#创建一个while循环,只要是选项是dmsDMS,则进入case,若不是,则直接while循环结束
while [[ $S == [dmsDMS] || $S == 'quit' || $S == * ]];do
case $S in
[dD])
df -lh;
[mM])
free -m -l | grep -v '^Swap';;
[sS])
free -m -l | grep '^Swap';;
quit)
exit;;
*)
echo '---------------------------Warning!------------------------------'
echo 'Please input your correct select,eg:[dDmMsS|quit]'
;;
esac
s
done
选项的使用
#!/bin/bash
help(){
echo "-m memory"
echo "-s swap"
echo "-d disk space"
echo "-q quit"
}
help
while getopts msdqh select
do
case $select in
m) free -m -l | grep -v '^Swap';;
s) free -m -l | grep '^Swap';;
d) df -lh;;
q) exit;;
h)help;;
*)
echo "Please select help options -h ";;
esac
done
最新文章
- 七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL
- 使用Ant打包工具 基本介绍
- disque概要
- FromHandle函数
- 怎么把GPUImageFIlter处理过的图像保存成UIImage
- 使用js使表单自动提交
- [jQuery编程挑战]003 克隆一个页面元素及其相关事件
- [翻译]初识SQL Server 2005 Reporting Services Part 1
- UI 常用(UIButton)
- ci框架中表前缀的处理
- K:哈弗曼树
- 【Android 应用开发】自定义View 和 ViewGroup
- WinForm设置注册表自动启动
- 【Spring Boot】使用JDBC 获取相关的数据
- 強大的jQuery Chart组件-Highcharts
- 【python】print &#183; sys.stdout &#183; sys.stderr
- 【重大更新】DevExpress v17.2新版亮点—WPF篇(三)
- AI(四): 微信与luis结合(下)
- java 管道流代码示例
- Element DatePicker日期范围选择
热门文章
- [原]Sublime Text3 搭建16位汇编环境(windows)
- XJOI网上同步训练DAY1 T1
- POJ 2888 Magic Bracelet(burnside引理+矩阵)
- LeetCode_Wildcard Matching
- OpenSceneGraph是一个开源的三维引擎
- Sql Server 面试题
- Oracle ORA-03137: TTC protocol internal error : [12333] 故障分析
- windows中.msc文件详解
- Activity的onSaveInstanceState()和onRestoreInstanceState()方法
- add.fun.php