linux脚本编写基础知识,shell编程基础知识小结

1、文件类型介绍linux系统中主要包括以下七种文件类型: d 目录 - 普通文件 l 符号链接 s 套接字文件 b 块设备文件 c 字符设备文件 p 命名管道文件

2、正则表达式正则表达式在shell编程中非常重要。

从一个文件或命令输出中抽取或过滤文本时。可使用正则表达式(RE),正则表达式是一些特殊或不很特殊的字符串模式的集合。

基本的元字符集:

^ 只匹配行首。

$ 只匹配行尾。

* 一个单字符后紧跟*,匹配0个或多个此单字符。

[] 匹配[]内字符,可以是一个单字符,也可以是字符序列。可以使用-来表示[]内范围,如[1-5]等价于[1,2,3,4,5]。

屏蔽一个元字符的特殊含义,如$表示字符$,而不表示匹配行尾。

. 匹配任意单字符。

pattern{n}   匹配pattern出现的次数n

pattern{n,}m匹配pattern出现的次数,但表示次数最少为n

pattern{n,m} 匹配pattern出现的次数在n与m之间(n,m为0-255)

常见例子:

显示可执行的文件:ls –l | grep …x...x..x

只显示文件夹:ls –l | grep  ^d

匹配所有的空行:^$

匹配所有的单词:[A-Z a-z]*

匹配任一非字母型字符:[^A-Z a-z]

包含八个字符的行:^……..$(8个.)

更多内容,请查阅正则表达式的详细资料加深学习。

3、字符类描述常用的可用字符类列表:

[:alnum:] 字母数字 [a-z A-Z 0-9]

[:alpha:] 字母 [a-z A-Z]

[:blank:] 空格或制表键

[:cntrl:] 任何控制字符

[:digit:] 数字 [0-9]

[:graph:] 任何可视字符(无空格)

[:lower:] 小写 [a-z]

[:print:] 非控制字符

[:punct:] 标点字符

[:space:] 空格

[:upper:] 大写 [A-Z]

[:xdigit:] 十六进制数字 [0-9 a-f A-F]

使用字符类可以更好地适应非英语 locale(包括某些必需的重音字符等)。

4、引号类型shell中共有四种引用类型:

“ ”双引号

‘ '单引号

` `  反引号

反斜线

说明:

“ ”可引用除$、` 、 、外的任意字符或字符串,“ ”中的变量能够正常显示变量值。

‘ '与“ ”类似,不同在于shell会忽略任何的引用值。

例如: GIRL=‘girl'

echo “The ‘$GIRL' did well”

则打印:The ‘girl' did well

说明:

` `用于设置系统命令的输出到变量,shell会将` `中的内容作为一个系统命令并执行质。

例如:echo `date` 则打印当前的系统时间。

说明:

用来屏蔽特殊含义的字符:&  *  +  ^  $  `  “  |  ?

例如:expr 12 * 12 将输出144

5、变量设置的几种模式变量设置时的不同模式:

valiable_name=value   设置实际值到 variable_name中

valiable_name+value   如果设置了variable_name,则重设其值

valiable_name:?value  如果未设置variable_name,则先显示未定义用户错误信息

valiable_name?value   如果未设置variable_name,则显示系统错误信息

valiable_name:=value  如果未设置variable_name,则设置其值

valiable_name-value   同上,但取值并不设置到variable_name

注:以上几种模式的灵活应用,将在很大程度上提升编程技巧。

6、条件测试test命令用于测试字符串、文件状态和数字,expr测试和执行数值输出。

Test格式:test condition 或 [ condition ](需要特别注意的是condition的两边都要有一个空格,否则会报错),test命令返回0表示成功。

下面将分别描述test的三种测试:

文件状态测试(常用的)

-d           测试是否文件夹

-f            测试是否一般文件

-L          测试是否链接文件

-r           测试文件是否可读

-w         测试文件是否可写

-x           测试文件是否可执行

-s           测试文件是否非空

1、字符串测试

五种格式: test  “string”

test  string_operator  “string”

test  “string”  string_operator  “string”

[ string_operator  “string” ]

[ “string”  string_operator  “string” ]

其中string_operator可以为:

= 两字符串相等

!=    两字符串不等

-z   空串

-n   非空串

2、数值测试

两种格式: “number”  number_operator  “number”

[ “number”  number_operator  “number” ]

其中:number_operator 可以为:-eq  、-ne、-gt、-lt、-ge

例如:  NUMBER=130

[ “990”  –le  “995”  –a  “NUMBER”  -gt  “133” ]

(其中-a表示前后结果相“与”)

expr命令一般用于整数值,但也可以用于字符串。

格式:  expr srgument operator operator argument

例如:  expr 10 + 10

expr 10 ^ 2 (10的平方)

expr $value + 10

增量计数--expr在循环中最基本的用法

例如:  LOOP=0

LOOP=`expr $LOOP + 1`

3、模式匹配:通过指定的冒号选项计算字符串中的字符数

例如:  value=account.doc

expr $value : `(.*).doc`

输出 account

7、命令执行顺序

&& 成功执行一个命令后再执行下一个

|| 一个命令执行失败后再执行另一个命令

( ) 在当前shell中执行一组命令(格式:(命令1;命令2; ……))

{ } 同( )

例如:  comet mouth_end || ( echo “hello” | mail dave ;exit )

如果没有( ),则shell将直接执行最后一个命令(exit)

在shell编程中,命令执行顺序,有时决定了一个程序的执行结果,而&&与||应用最为广泛。

8、脚本调试脚本调试

最有用的调试脚本的工具是echo命令,可以随时打印有关变量或操作的信息,以帮助定位错误。

也可使用打印最后状态($?) 命令来判断命令是否成功,这时要注意的是要在执行完要测试的命令后立即

输出$?,否则$?将会改变。

Set命令也可以用来辅助脚本测试:

Set –n           读命令但是不执行

Set –v           显示读取的所有的行

Set –x           显示所有的命令及其参数

要关闭set选项,只要把-换成+就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值