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 <表 ...
随机推荐
- Oarcle 入门之from关键字
作用:检索“表” 注意:检索的表后可以添加别名(别名不需要被双引号引起) *每一句都不可缺少
- 网页分享到微博、QQ、QQ空间、微信
<ul id="content-share-list" class="bdsharebuttonbox bdshare-button-style0-16" ...
- Linux命令(一)
一:命令介绍,目录结构,基本格式 linux命令格式: command [-options] [parameter1] ... 带-就是选项,不带-就是参数 ls ---文件显示 ls ...
- wireshark抓包结果很多[TCP Retransmission]怎么办?
有一同事问用wireshark抓包时发现很多[TCP Retransmission],这些包极大影响了自己真正想看的http数据包,如下图. 我拿到pcapng后首先看到这些包的来源ip都是固定的两个 ...
- 剑指offer(38)二叉树的深度
题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 题目分析 树的深度=左子树的深度和右子树深度中最大者+1 代码 fu ...
- 王之泰201771010131《面向对象程序设计(java)》第六周学习总结
第一部分:理论知识学习部分 第五章 第五章学习内容主要分为七个模块,分别为: 1.类.超类和子类: a. 类继承的格式: class 新类名extends已有类名. b. 已有类称为:超类(super ...
- Windows下nginx+tomcat实现简单的负载均衡
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请 ...
- Linux修改磁盘挂载目录
比如想把已经挂载在home目录上的硬盘挂载到data目录上, 如下操作 #df -h(查看分区情况及数据盘名称) # mkdir /data(如果没有data目录就创建,否则此步跳过) # umoun ...
- react-native android/ios 根据配置文件编译时自动修改版本号
开发react-native时大都有过这个操作,当版本迭代时候要修改app版本号时,一般都这样做 Android: 的要修改build.gradle文件的versionName ios: 打开xcod ...
- html css js 细节
细节1 1.Chrome中文界面下会将小于12px的字体默认显示为12px,解决方法:在CSS中加入-webkit-text-size-adjust:none; 2.link可以加载除CSS以外的其他 ...