21-Shell编程

21.1 正则表达式

21.1.4 字符集和单词

“单词”指的是两侧由非单词字符分隔的字符串。非单词字符指的是字母、数字、下划线以外的任何字符。

21.1.5 字符类

POSIX正则表达式中的字符类

匹配字符
[[:alnum:]] 文字、数字字符
[[:alpha:]] 字母字符
[[:lower:]] 小写字符
[[:upper:]] 大写字符
[[:digit:]] 小数
[[:xdigit:]] 十六进制数字
[[:punct:]] 标点符号
[[:blank:]] 制表符和空格
[[:space:]] 空格
[[:cntrl:]] 所有控制符
[[:print:]] 所有可打印的字符
[[:graph:]] 除空格外所有可打印的字符

21.1.6 位置匹配

21.1.7 字符转义

21.1.8 重复

用于重复模式的元字符

元字符 描 述
* 重复0次或更多次
+ 重复1次或更多次
? 重复0次或1次
重复n次
重复n次或更多次
重复不少于n次,不多于m次

21.1.9 子表达式

21.1.10 反义

21.1.11 分支

21.1.12 逆向引用

21.2 Shell脚本编程

21.2.3 变量和运算符

  1. 变量的赋值和使用
  2. 变量替换
  3. 位置变量
  4. BASH引号规则
  5. 运算符

21.2.4 表达式求值

21.2.5 脚本执行命令和控制语句

  1. if选择结构
     if test-command-1
     then
         commands-1
     elif test-command-2
     then
         commands-2
     elif test-command-3
     then
         commands-3
     ...
     else
         commands
     fi
    
  2. case多选结构
     case word in
         pattern-1)
             commands-1
             ;;
         pattern-2)
             commands-2
             ;;
         ...
         pattern-N)
             commands-N
             ;;
     esac
    

21.2.6 条件测试

  1. if判断的依据
  2. test命令和空格的使用
    test[命令可以对3类表达式进行测试。
    • 字符串比较

用于字符串比较选项

选 项 描 述
-z str 当字符串str长度为0时返回真
-n str 当字符串str长度大于0时返回真
str1 = str2 当字符串str1和str2相等时返回真
str1 != str2 当字符串str1和str2不相等时返回真
  • 文件测试

用于文件测试的选项

选 项 描 述
-b file 当file是块设备文件时返回真
-c file 当file是字符文件时返回真
-d pathname 当pathname是一个目录时返回真
-e pathname 当pathname指定的文件或目录存在时返回真
-f file 当file是常规文件(不包括符号链接、管道、目录等)的时候返回真
-g pathname 当pathname指定的文件或目录设置了SGID位时返回真
-h file 当file是符号链接文件时返回真
-p file 当file是命名管道时返回真
-r pathname 当pathname指定的文件或目录设置了可读权限时返回真
-s file 当file存在且大小为0时返回真
-u pathname 当pathname指定的文件或目录设置了SUID位时返回真
-w pathname 当pathname指定的文件或目录设置了可写权限时返回真
-x pathname 当pathname指定的文件或目录设置了可执行权限时返回真
-o pathname 当pathname指定的文件或目录被当前进程的用户拥有时返回真
  • 数字比较

用于数字比较的选项

选 项 对应的英语单词 描 述
-eq equal 如果相等,返回真
-ne not equal 如果不相等,返回真
-lt lower than 如果int1小于int2,返回真
-le lower or equal 如果int1小于或等于int2,返回真
-gt greater than 如果int1大于int2,返回真
-ge greater or equal 如果int1大于或等于int2,返回真
  • 复合表达式

复合表达式操作符

操作符 描 述
!expr “非”运算,当expr为假时返回真
expr1 -a expr2 “与”运算,当expr1和expr2同时为真时才返回真
expr1 -o expr2 “或”运算,expr1或expr2为真时返回真

21.2.7 循环结构

  1. while语句
     while test-commands
     do
         commands
     done
    
  2. until语句
     until test-commands
     do
         commands
     done
    
  3. for语句
     for variable [in list]
     do
         commands
     done
    

21.2.8 读取用户输入

21.2.9 脚本执行命令

21.2.10 创建命令表

命令表的表示形式

表示形式 说 明
a&&b “与”命令表。当且仅当a执行成功,才执行b
a||b “或”命令表。当且仅当a执行失败,才执行b
a;b 顺序命令表,先执行a,再执行b

21.2.11 其他有用的Shell编程工具

其他常用的Shell命令

命 令 描 述
cut 以指定的方式分割行,并输出特定的部分
diff 找出两个文件的不同点
sort 对输入的行进行排序
uniq 删除已经排好序的输入中的重复行
tr 转换或删除字符
wc 统计字符、单词和行的数量
substr 提取字符串中的一部分
seq 生成整数数列

21.3 Shell定制

21.3.3 个性化设置:修改.bashrc文件

posted @ 2024-04-29 15:38  Blind  阅读(12)  评论(0编辑  收藏  举报