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 <表 ...
随机推荐
- jQuery 自执行函数
jQuery 自执行函数 // 为了避免三方名冲突可将全局变量封装在自执行函数内 (function (arg) { var status = 1; arg.extend({ 'xsk': funct ...
- 谷歌技术"三宝"之MapReduce
江湖传说永流传:谷歌技术有"三宝",GFS.MapReduce和大表(BigTable)! 谷歌在03到06年间连续发表了三篇很有影响力的文章,分别是03年SOSP的GFS,04年 ...
- mongodb集群配置及备份恢复
Mongodb安装: 编辑/etc/yum.repos.d/mongodb.repo,添加以下: [MongoDB] name=MongoDB Repository baseurl=https://r ...
- SVN更新的时候前面的子母的意思(A C D M G U R I)
U:update 表示从服务器收到文件更新了 G:表示本地文件以及服务器文件都已更新,而且成功的合并了 其他的如下: A:add 表示有文件或者目录添加到工作目录 R:replace,从服务器替换,表 ...
- 1_bytes和str
数据运算全跳过,语言都一样,格式差异 bytes/str的区别 Python3不会以任意隐式的方式混用bytes和str,不能拼接字符串和字节包也无法在字节包里搜索字符串(反之亦然) 二进 ...
- sublime设置html在浏览器打开
1.快捷键 Ctrl+Shift+P输入:pcip选择第一个 2.输入:View In Browser安装此插件 3.菜单栏Preferences->Key Bindings 输入:[{ &q ...
- robot framework学习二-----元素定位
文章摘自:https://www.cnblogs.com/fnng/p/3901391.html 不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot fram ...
- echarts的axisLabel的文字内容过长的解决办法
通过查找资料学习,我总结了四种解决的办法,不一定是最好的,但是希望能够帮助到需要的童鞋,同时如果大家有什么更好的方法欢迎指导. 方法一:这种方法就是将文本内容转换为字符串数组,然后再按需求换行,需要每 ...
- 更改redhat7 yum源为centos
1. 替换原系统中yum包, 检查初始的yum包有哪些 rpm -qa |grep yum 2. 删除原始的yum包. rpm -qa|grep yum|xargs rpm -e --nodeps 3 ...
- SQL Server数据归档的解决方案
SQL Server数据归档的解决方案 最近新接到的一项工作是把SQL Server中保存了四五年的陈年数据(合同,付款,报销等等单据)进行归档,原因是每天的数据增量很大,而历史数据又不经常使用, ...