文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

shell编程基础知识有哪些

2023-06-09 20:14

关注

这篇文章主要介绍了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           测试文件是否非空

字符串测试
五种格式: test  “string”
           test  string_operator  “string”
           test  “string”  string_operator  “string”
           [ string_operator  “string” ]
           [ “string”  string_operator  “string” ]
其中string_operator可以为:
    = 两字符串相等
    !=    两字符串不等
    -z   空串
    -n   非空串

数值测试
两种格式: “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`

模式匹配:通过指定的冒号选项计算字符串中的字符数
例如:  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选项,只要把-换成+就可以了。

感谢你能够认真阅读完这篇文章,希望小编分享的“shell编程基础知识有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯