我经常遇到需要简单编写shell脚本的情况。每次忘记shell脚本的语法就去查资料。因此,我专门写一篇文章,记录下常用的shell语法。如何运行shell脚本[root@hostshell]#vimstart[root@hostshell]#catstart#!/bin/bashecho'hello'[root@hostshell]#chmod755start[root@hostshell]#./starthellodatatypestringa=1a=1+1#thisIsthestring'1+1'integera=$((1+1))array#初始化a[2]=100a=(24'str'4)a=([0]=2[2]='str'[4]=20)#单次赋值a[2]='s'#打印整个数组echo${a[@]}#遍历${a[@]}中i的数组;doecho$idone#数组元素个数echo${#a[@]}#指定添加元素的下标a=([0]=2[2]='str')a[3]=1a[6]=6#删除整个数组unseta#删除数组中的单个元素unseta[1]variable#声明一个字符串变量title='hello'num=1#这也是一个字符串#声明一个整型变量num=$((1))注意:等号=不能左右带空格expression#$(expression)a=$(date)a=$(ls~)echo${a}控制流程ifa=5if[$a=5];然后echo'a=5'elseecho'a!=5'fiwhilecount=1while((count<5));doecho$countcount=$((count+1))doneecho'finish'foriin{a..d};做echo$idone#outputabcdfor((i=0;i<5;i++));doecho$idone#output01234switchcasecase语句比较复杂,语法是casewordin[pattern[|模式]...)命令;;]...esac示例:a=1case$ain0)echo'1';;1)回声'2';;*)echo'*';;esac#case倒序#2控制流中常用表达式的逻辑真假判断表达式中,可以换成其他表达式,比如下面的判断文件表达式的常用表达式[-efile]#文件存在[-dfile]#文件是一个目录[-ffile]#文件存在并且是一个普通文件[-rfile]#文件存在并且是可读的[-wfile]#文件存在并且是一个普通文件是可写的[-xfile]#文件存在并且是可执行的=string2]#string1和string2相同[string1!=string2][string1>string2]#string1排在string2之后,比较字符编码大小[string1
