shell脚本语言用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本语言用法相关的知识,希望对你有一定的参考价值。
shell程序运行:
1、./xx.sh。这样运行shell要求shell程序必须具有可执行权限。chmod a+x xx.sh来添加可执行权限。
2、source xx.sh。
3、bash xx.sh,bash是一个脚本程序解释器,本质上是一个可执行程序。这样执行相当于我们执行了bash程序,然后把xx.sh作为argv[1]传给他运行。
if的典型应用
判断文件是否存在。(-f),注意[]里面前后都有空格,不能省略。
判断目录是否存在 (-d)
判断字符串是否相等("str1" = "str2"),注意用一个等号而不是两个
判断数字是否相等(-eq)、大于(-gt)、小于(-lt)、大于等于(-ge)、小于等于(-le) 回忆一下在ARM裸机中讲述ARM汇编条件执行时,曾经用过这些条件判断的缩写。(eq就是equal,gt就是greater than,lt就是less than,ge就是greater or equal,le就是less or equal)
判断字符串是否为空(-z)注意-z判断时如果变量本身没定义也是不成立(也就是说-z认为没定义不等于为空)
case语句
(1)shell中的case语句和C语言中的switch case语句作用一样,格式略有差异
(2)shell中的case语句天生没有break,也不需要break,和C语言中的switch case不同。shell中的case默认就是匹配上哪个执行哪个,不会说执行完了还去执行后面的其他case(就好像shell中的case语言默认都带了break)。
shell程序本身也可以在调用时传参。$#表示调用该shell时传参的个数($#计数时只考虑真正的参数个数)。$0、$1、$2·····则依次表示传参的各个参数。
while循环中内嵌case语句时,case中的break是跳出外层的while循环的,不是用来跳出case语句的。
shell中的$# $1等内置变量的值不是不可变的,而是可以被改变,被shift指令改变。shift指令有点像C语言中的左移运算符,把我们给shell程序的传参左移了一个移出去了,原来的$2变成了新的$1,原来的$#少了1个。
以上是关于shell脚本语言用法的主要内容,如果未能解决你的问题,请参考以下文章
Shell脚本(脚本结构和执行方法,date命令用法,脚本中的变量)