文档章节

shell学习总结7

心中的理想乡
 心中的理想乡
发布于 2017/02/25 21:27
字数 1090
阅读 4
收藏 0

今天第二次总结这个,感觉下午的时光总是很安逸,静静感受着阳光,可能这也是广东气候独有的恩赐。总是让我想起当年本科那几年,尤其是大一与伙伴们相聚的时光。我记得那天也是下午,同样冬天,同样是阳光灿烂,我们逛了一天累了,在九栋楼下聚集。后来王堃说,我们大二之后关系肯定会淡。后来就真的如此了。有时候自己是怅惘的,因为怀念,因为叹息吧。这也没办法,是大家共同的选择。如果有机会,我说的大家都能看到的话,我想说:大家过的好吗?我想念你们了。我一直怀念当初一起的时光了。纪成没变,还在这里,只不过纪成不会表达罢了。
等下要回深圳,大约六点多出发吧,现在来总结总结。接下来总结的章节就是真正的shell脚本编程的内容。通读下来我一直觉得shell脚本的灵活性,远远的超出我的想象。今天先来个初步的章节吧。
1、基本的运行的脚本命令开头:
#!/bin/bash
data
who
注意:脚本中命令可以使用分号进行分隔,但是同样可是使用在不同行列出不同命令的方式,让系统顺序执行

2、echo命令几种用法:
        echo string
        echo 'string"string"'
        echo "string'string'" 不同引号进行包含
        echo -n 'string' 这种可以包中显示出字符之后不换行

3、环境变量与用户变量:
        变量的引用,例如:echo $HOME
        用户变量的定义:var1=10
                        var2=-57
                        var3=testing(这种是将var3赋值成testing字符串)
                        var4='string'
        用户变量的定义规则:不超过20个的字母、数字或下划线的文本字符串,区分大小写,等号两边不能有空格
        用户变量的使用:直接使用$符号进行引用,赋值的时候不用使用$符号
        
4、反引号的使用:反引号在shell编程里面主要的作用便是求值,然后将结果赋给变量
            例如:testing=`data`
                  echo "Date and time are:" $testing
            结果:Date and time are: Mon Jan 31 20:23:25 EDT 2011

5、输出重定向:command > outputfile
         举例:date > test6
         结果:会将当前时间写入test6文件当中去

6、输入重定向:command < inputfile
         举例:wc < test6
         结果:2    11      60
         说明:wc命令主要是提供了对文本中的数据计数,主要包含三个方面:文本的行数、文本的词数、文本的字节数
   内联输入重定向:使用<<符号代替<
            说明:内联重定向主要不是在文件中获取输入的数据,而是从命令行中获取,不过开始于结束的标志位必须使用一样的
            举例:wc << EOF
                    >test string 1
                    >test string 2
                    >test string 3
                    >EOF
            结果:3    9    42
7、管道: rpm -qa | sort | more

8、执行数学运算:
    (1)使用expr命令:expr 1+5
        要是使用*进行乘法运算的时候,要使用:\*
    (2)使用[]进行数学运算:var1=$[1+5]
        如果是浮点数运算是不行的,这些都只支持整数运算
    (3)浮点数运算解决方案:使用bc计算器
                     举例:(在shell脚本中)
                             #!/bin/bash
                             var1=`echo "scale=4;3.44 / 5" | bc`
                             echo The answer is $var1
    (4)使用bc运算器解决大量运算问题:主要思路是使用内联重定向来实现
                                举例:(在shell脚本中)
                                          #!/bin/bash
                                          var1=10.12
                                          var2=23.45
                                          var3=45.76
                                          var4=23.55

                                          var5=`bc << EOF
                                          scale=4
                                          a1=($var1 * $var2)
                                          b1=($var3 * $var4)
                                          a1+b1
                                          EOF
                                          `
                                          echo The final answer for this mess is $var5
9、退出脚本
    (1)查看退出状态码:退出状态码是在一个命令运行结束的时候就马上赋值给$?变量的
    (2)查看:echo $?
    (3)说明:一个命令如果是正常退出的话,状态码是0,如果是错误退出的话,状态码会是一个正数值(1~255),特殊状态码查看219页表10-2
     (4)使用exit改变状态码:在脚本结束的时候可以直接(exit number)来指定一个状态码,如果有超过255的状态码,系统会除256取模来确定最终的状态码

© 著作权归作者所有

共有 人打赏支持
心中的理想乡
粉丝 8
博文 68
码字总数 61989
作品 0
深圳
程序员
运维老鸟分享-学好Linux技术大绝招

随着互联网的飞速发展,越来越多的人开始学习 Linux 技术。很多初学者面对 Linux 技术的海洋无从下手,近 1 0年一线互联网运维老鸟为菜鸟总结了学好 Linux 技能的大绝招: 1、基于 VMware 虚...

wgkgood
2017/06/16
0
0
单引号、双引号和不加引号区别

把内容输出出来,可能不会将含有空格的 说一下单引号、双引号和不加引号区别 总结说明: 单引号: 可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输...

大凯哥517
2017/05/05
0
0
2016个人计划

================2015总结============================ 算完成了吧 1:找个女朋友 。。。 未完成 2:养好身体 未完成 未完成 3:深入了解java基础,看看jdk1.6,1.7的新特性,了解多线程,高...

有种下班别走
2016/02/16
6
0
Shell脚本易犯的错

shell脚本的易犯错误 1. for i in x y z : 这句是以空格作为分隔符的,当我们的$n中包含空格的话,就会有错误 如 for i in ,这句 ls *.mp3执行后如果有空格就gg了 直接 for i in *.mp3 就好...

476069017
2016/09/18
0
0
Shell和Python学习教程总结

博友们好,由于运维相关技术不断发展,个人能力也不断提高,渐渐积累的经验不能及时更新到以往的博文中。因此,为了更好的帮助大家学习运维技术,特地针对Shell和Python脚本语言总结了文档,...

李振良OK
2017/02/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java工程师用spring boot和web3j构建以太坊区块链应用

区块链最近IT世界的流行语之一。这项有关数字加密货币的技术,并与比特币一起构成了这个热门的流行趋势。它是去中心化的,不可变的分块数据结构,这是可以安全连接和使用的密码算法。在这种结...

笔阁
8分钟前
1
0
聊聊sentinel的SentinelWebAutoConfiguration

序 本文主要研究一下sentinel的SentinelWebAutoConfiguration SentinelWebAutoConfiguration spring-cloud-alibaba-sentinel-autoconfigure-0.2.0.BUILD-SNAPSHOT-sources.jar!/org/springf......

go4it
11分钟前
0
0
java ArrayList 根据对象内的属性排序

//根据修改时间排序Comparator com = new Comparator<ReleaseInfo>() {public int compare(ReleaseInfo reInfo1, ReleaseInfo reInfo2) { //return reInfo2.getModifyTime().c......

成长中的小白
11分钟前
0
0
PowerDesigner p f m

(非原创) P:PirmaryKey 主键 F:ForeignKey 外键 M:Mandatory 强制要求(不能为空) 主键: 主键是数据表的唯一索引,比如学生表里有学号和姓名,姓名可能有重名的,但学号确是唯一的,你要从...

森火
11分钟前
0
0
Nexus Repository Manager 搭建私有docker仓库

Nexus Repository Manager 搭建私有docker仓库 2018年05月08日 14:44:23 阅读数:115 1.下载nexus3的镜像: docker pull sonatype/nexus3 2.使用镜像启动一个容器: docker run -d --name n...

linjin200
12分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部