一、Shell脚本编程基础
1、简单地理解是脚本就是一堆的Linux命令或其他命令,把他们写到一起,打包成一个文件就是脚本,Shell脚本一般以.sh后缀结尾
2、sh text.sh:运行text.sh脚本
3、Linux支持变量,和c语言一样(但似乎不用声明类型),比如在脚本里写a = 10(这里为了看起来清除一点=两边加了空格,但实际上在shell脚本语言中这是错误的哦)。
4、echo:输出语句
①echo $a:输出变量a(赋值一个变量时不需要写$,使用或读取一个变量需要写)
②echo "Hello World":输出字符串(可以和上面的拼接在一起哦echo "Hello World" $a,并且在Linux里对于一个字符串拉说写不写双引号问题不大,echo Hello World这样也可以得到正常的输出)
5、expr:用来计算一个式子(+ - * / )赋值的地方不能写空格,运算符两边必须写空格。
①c=`expr $a + $b`:计算a+b(记得要把这个式子括起来哦,如果+两边没有空格的话会显示a+b而不是他们的和)
②c=`expr $a * $b`:计算a*b(因为在正则表达式中“*”被认为可以重复很多次,所以在Shell里面也会这么认为,所以前面要加转义符号“”才能得到表示乘)
Linux脚本语言里括号也是要写转义符的( )。
6、if:条件判断语句
1 if[...] 2 then 3 ... 4 else 5 ... 6 fi
①输出a和b的较大者:
1 if [ $a -gt $b ] 2 then 3 echo $a 4 else 5 echo $b 6 fi
>:-gt(greater than)
<:-lt(less than)
>=:-ge(greater equal)
<=:-le(less equal)
==:-eq(equal)
!=:-ne(not equal)
7、for:循环语句
1 for x in .... 2 do 3 ... 4 done
注释用#
①输出1-10(早期):
1 for x in 1 2 3 4 5 6 7 8 10 #赋值不用$哦 2 do 3 echo $x 4 done
②输出1-10:
1 for x in {1 .. 10} #可能会不支持 2 do 3 echo $x 4 done
8、while:循环语句
1 while [ .. ] 2 do 3 ... 4 done
①输出1-10:
1 x=1 2 while [ $x -lt 10 ] 3 do 4 echo $x 5 x=`expr $x + 1` 6 done
二、字符串
1、定义:a=“hello”
1 #输出hello world 2 a=hello 3 b=world 4 echo $a $b
2、read a:输入a
3、比较两个字符串:通过一个"="比较是否相等,“!=”比较是否不等(和C一样)
1 password="123" 2 3 echo "Please enter a password:" 4 read userPassword 5 6 if [ userPassword = password] 7 then 8 echo "密码正确!" 9 else 10 echo “密码错误!” 11 fi
4、拼接字符串:str3="$s1 $s2"(中间不加空格的话两个字符串就拼在一起了)
5、判断是否是空字符串:if[ -z $s1](-z表示zero,即长度是否为0,-n表示非0)
三、数组(记得用bash运行)
1、定义:arr=(7 8 9 10)
2、输出8:${arr[1]}({}表示数组)
3、输出整个数组:
1 arr=(7 8 9 10) 2 3 for i in ${arr[@]} 4 do 5 echo $i 6 done