首页 > 系统相关 >21-Shell编程

21-Shell编程

时间:2024-04-29 15:44:05浏览次数:24  
标签:返回 字符 commands Shell 21.1 21 编程 pathname file

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文件

标签:返回,字符,commands,Shell,21.1,21,编程,pathname,file
From: https://www.cnblogs.com/goldenretriever/p/18165852

相关文章

  • linux修改shell,以及安装zsh配置oh-my-zsh.md
    查看当前shellecho$SHELL查看系统中有哪些shellcat/etc/shells修改shell,输入要切换的shell,例/bin/zshchsh-s/bin/zsh安装zshyuminstall-yzshoh-my-zsh克隆zshgitclonehttps://github.com/robbyrussell/oh-my-zsh.git~/.oh-my-zshgithub拉不下来的话去gitee......
  • 实验3 C语言函数应用编程
    1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声明......
  • AP5216 是一款 PWM工作模式, 高效率、外围简单、内置功率管,适用于5V~100V输入的高精度
    AP5216是一款PWM工作模式,高效率、外围简单、内置功率管,适用于5V~100V输入的高精度降压LED恒流驱动芯片。输出最大功率可达9W,最大电流1.0A。AP5216可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮模式。AP5216工作频率固定在130KHZ,同时内置抖频电路,可以降低对其他设备......
  • IPC-7711/21D, IPC-7711D, IPC-7721D 电子组件的返工、修改和维修,验收标准。Rework,
    IPC-7711/21-RevisionD-StandardOnly:Rework,ModificationandRepairofElectronicAssembliesTheIPC-7711/21guideprovidesproceduresforrework,repairandmodificationofprintedboardassemblies,includingtoolsandmaterials,commonprocedures,......
  • IPC最新发行了新标准:IPC-A-610J, IPC-J-STD-001J, IPC-7711/21D, IPC-2221C
    IPC最新发行了新标准:IPC-A-610J,IPC-J-STD-001J,IPC-7711/21D,IPC-2221C  2024年伊始,IPC又更新了一些新的标准,大家可以及时去更新了。IPC-A-610J_EN2024TOCAcceptabilityofElectronicAssemblies大家对这个标准都不陌生了吧,从事电子行业的技术......
  • 应急响应-webshell查杀
    简介靶机账号密码rootxjwebshell1.黑客webshell里面的flagflag{xxxxx-xxxx-xxxx-xxxx-xxxx}2.黑客使用的什么工具的shellgithub地址的md5flag{md5}3.黑客隐藏shell的完整路径的md5flag{md5}注:/xxx/xxx/xxx/xxx/xxx.xxx4.黑客免杀马完整路径md5flag步骤#1.1......
  • 实验3 C语言函数应用编程
    task1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声明......
  • Python多线程编程深度探索:从入门到实战
    title:Python多线程编程深度探索:从入门到实战date:2024/4/2818:57:17updated:2024/4/2818:57:17categories:后端开发tags:多线程并发编程线程安全Python异步IO性能优化实战项目第1章:Python基础知识与多线程概念Python简介:Python是一种高级、通用、解释......
  • 为啥在编程的世界里,日期时间处理这么难?
    做过开发的同学都有体会,日期时间的处理很麻烦,稍不注意就会出现日期格式不一样,或者时间差8小时。那为何日期时间这么难处理呢?今天我们就来梳理一下在编程的世界里,为啥日期时间这么难处理。我们先来熟悉几个概念1、时区(Timezone)由于各地的日出日落时间不同,所以把全球所有地区共......
  • Windows编程系列:如何为任务栏设置背景
    最近在使用upupoo时,发现里面有个任务栏设置的功能,效果还不错 我试了前面为资源管理器设置背景的方法,发现不生效。大意的反编译了一下upupoo的各种dll,但是也没找到具体的实现方法(因为目前对逆向还不是很熟) 在搜索引擎搜索时,找到了OpenShell这个软件,发现里面也实现了这个功......