case语法
一、文件系统访问列表
FACL :Filesystem Access Control List 文件系统访问列表
利用文件扩展保存额外的访问控制权限。
setfacl: -m:设定访问控制权限 ( u:UID:perm g:GID:perm) -x:取消访问控制权限
getfacl:
二、用户的几个命令
w
who:显示登录到当前系统的用户有哪些
whoami
last :显示/var/log/wtmp文件,显示用户登录历史及系统重启历史。
-n #:显示最近#次的相关信息。
lastb:/var/log/btmp 文件,显示用户错误的登录尝试
-n #:
lastlog:显示每一个用户最近一次的成功登录信息。
-u USERNAME:显示某个指定用户的最近登录信息
basename :
$0 :执行脚本时的脚本路径及名称
mail:
生成随机数: RANDOM 0-32768
内置的环境变量
随机数生成器: /dev/random /dev/urandom
生成10个随机数,然后显示这十个随机数中的最大值和最小值:

三、终端类型
console:控制台
pty:物理终端 (VGA卡连接)
tty#:虚拟终端 (VGA卡连接)
ttyS#:串行终端
pts/# :伪终端
shell:
四、面向过程
面向过程的控制结构:
顺序结构
选择结构
循环结构
1、选择结构:
if:单分支、双分支、多分支
(1)单分支
if CONDITION;then
statement
...
fi
(2) 双分支
if CONDITION;then
statement
...
else
statement
...
fi
(3)多分支
if CONDITION1;then
statement
...
elif CONDITION2;then
statement
...
else
statement
....
if
2、case语句
case语句:选择结构
case SWITCH in
value1)
statement
...
;;
value2)
statement
...
;;
value3)
statement
...
;;
*)
statement
...
;;
esac

练习:
只接受参数 start,stop, restart,status其中之一

练习2:
写一个脚本,可以接受选项及参数,而后能获取每一个选项,及选项的参数;并能根据选项及参数做出特定的操作。比如:
adminusers.sh --add tom,jerry --del tom,jerry -v|--verbose -h|--help
1 #! /bin/bash
2 #
3 DEBUG=0
4 ADD=0
5 DEL=0
6
7 for I in `seq 1 $#`; do
8 case $1 in
9 -v|--verbose)
10 DEBUG=1
11 shift;;
12 -h|--help)
13 echo "Usage:`basename $0` --add USER_LIST --del USER_LIST -v|--verbose -h|--help"
14 exit 0
15 ;;
16 --add)
17 ADD=1
18 ADDUSERS=$2
19 shift 2
20 ;;
21 --del)
22 DEL=1
23 DELUSERS=$2
24 shift 2
25 ;;
26 #*)
27 # echo "Usage:'basename $0' --add USER_LIST --del USER_LIST -v|--verbose -h|help"
28 # exit 7
29 # ;;
30 esac
31 done
32
33 if [ $ADD -eq 1 ]; then
34 for USER in `echo $ADDUSERS | sed 's@,@ @g'`; do
35 if id $USER &> /dev/null; then
36 [ $DEBUG -eq 1 ] && echo "$USER exists."
26 #*)
27 # echo "Usage:'basename $0' --add USER_LIST --del USER_LIST -v|--verbose -h|help"
28 # exit 7
29 # ;;
30 esac
31 done
32
33 if [ $ADD -eq 1 ]; then
34 for USER in `echo $ADDUSERS | sed 's@,@ @g'`; do
35 if id $USER &> /dev/null; then
36 [ $DEBUG -eq 1 ] && echo "$USER exists."
37 else
38 useradd $USER
39 [ $DEBUG -eq 1 ] && echo "Add user $USER finished."
40 fi
41 done
42 fi
43
44 if [ $DEL -eq 1 ]; then
45 for USER in `echo $ADDUSERS | sed 's@,@ @g'`;do
46 if id $USER &> /dev/null; then
47 userdel -r $USER
48 [ $DEBUG -eq 1 ] && echo "Delete $USER finished."
49 else
50 [ $DEBUG -eq 1 ] && echo "$USER not exist."
51 fi
52 done
53 fi
练习3、写一个脚本showlogged.sh ,其用法格式为:
showlogged.sh -v -c -h | --help
其中,-h 选项只能单独使用,用于显示帮助信息; -c选项时,显示当前系统上登录的所有用户数;如果同时使用了 -v选项,则既显示同时登录的用户数,又显示登录的用户的相关信息。


case语法的更多相关文章
- case语法练习脚本之判断
case语法练习脚本之判断 #!/bin/bash read -p "请输入一个字符,并按enter键确认:" key case "$key" in [a-z] ...
- bash 中的case语法
CASE语法格式备忘 case $variable-name in pattern1) command1 ... .... commandN ;; pattern2|pattern3|pattern4 ...
- Shell case语法结构解析
case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行结束,跳出整个 ...
- Verilog RTL优化策略(一):推荐使用assign语法替代if-else和case语法
参考 <手把手教你设计CPU--RISC-V处理器篇> 先给出不用if-else和case的原因 Verilog中的if-else和case语法存在两大缺点: 不能传播不定态X: 会产生优 ...
- HiSql 实现case语法操作 新一代无实体ORM框架
HiSql 实现case语法操作 在SqlServer,Oralce,Hana,PostGreSql,MySql 这些数据都支持SQL case语法,平常在实现业务开发中也会常用到,那么HiSql对于 ...
- SQL Server高级内容之case语法函数
1.Case函数的用法 (1)使用类似:switch-case与if-else if. (2)语法: case [字段] when 表达式 then 显示数据 when 表达式 then 显示数据 ...
- [lua]尝试一种Case语法糖
function CaseT(arg) function proxy(caller) caller.yield(r) end -- proxy return function (cond) if (c ...
- case语法2
case流程控制语句在linux中有其独到的一面,使得在编程过程中能够在脚本编写的过程中具备多个选项功能,使其功能多样化,其具备简单,快速的特点. 一.case流程语句结构图 根据流程图可以知道,在所 ...
- shell case语法
在阅读hadoop相关的脚本文件时,遇到case语句,好久不写shell,忘了不少,复习下shell的case语句: 运行结果: ...
- delphi中Case语法的使用方法
Case 语句If...Then…Else 语句适合选项较少的情况,如果有很多选项的话利用If 语句就比较麻烦,在这种情况下,Case 语句就容易多了.Case 语句的语法如下: case <表 ...
随机推荐
- 在Qt Quick中一个简单Hello World加载过程
Qt5基本类图: QQmlEngine QQmlEngine类提供了一个QML引擎,用于管理由QML文档定义的对象层次架构,QML提供了一个默认的QML上下文(根上下文,获取函数QQmlEngi ...
- Dockfile基本语法
FROM 功能为指定基础镜像,并且必须是第一条指令. 如果不以任何镜像为基础,那么可写为:FROM scratch. 接下来所写的指令将作为镜像的第一层开始. 格式: FROM <image&g ...
- PHP 订单延时处理:延迟队列(未鉴定)
PHP 订单延时处理:延迟队列: https://github.com/chenlinzhong/php-delayqueue
- Java 解析Excel(xls、xlsx两种格式)
Java 解析Excel(xls.xlsx两种格式) 一.环境 JDK 1.8 二.JAR 1.commons-collections4-4.1.jar 2.poi-3.9-20121203.jar ...
- openwrt修改hosts
不同于标准linux主机,openwrt使用dnsmasq来管理dns和dhcp. 修改dnsmasq的配置文件 vi /etc/config/dhcp 在config dnsmasq这组下面添加 l ...
- linux的必知必会规则
- opencv学习之路(26)、轮廓查找与绘制(五)——最小外接矩形
一.简介 二.轮廓最小外接矩形的绘制 #include "opencv2/opencv.hpp" using namespace cv; void main() { //轮廓最小外 ...
- idea热部署+自动编译
https://blog.csdn.net/z15732621582/article/details/79439359
- C#实现基于ffmpeg加虹软的人脸识别
关于人脸识别 目前的人脸识别已经相对成熟,有各种收费免费的商业方案和开源方案,其中OpenCV很早就支持了人脸识别,在我选择人脸 识别开发库时,也横向对比了三种库,包括在线识别的百度.开源的OpenC ...
- 【linux总结】zsl
extundelete [root@xuegod63 ~]# lsof -p 43641 #一般用于查看木马进程,在读哪些文件 [root@xuegod63 ~]# lsof -i :22 #用于查看 ...