shell脚本
shell是一种脚本语言,也就是解释性语言。程序设计语言可以分为两类:编译型语言和解释型语言。
编译型语言需要预先将我们写好的源代码转换成目标代码,这个过程被称作“编译”。运行程序时,直接读取目标代码。由于编译后的目标代码非常接近计算机底层,因此执行效率很高,这是编译型语言的优点
解释型语言也叫做脚本语言。执行这类程序时,解释器需要读取我们编写的源代码,并将其转换成目标代码,再由计算机运行。因为每次执行程序都多了编译的过程,因此效率有所下降
Linux的Shell脚本解释器种类众多,一个系统可以存在多个shell脚本解释器,可以通过cat /etc/shells 命令查看系统中安装的shell脚本解释器
[root@localhost /]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
字符串
获取字符串长度
#!/bin/bash
string="abc";
echo ${#string}
输出结果
3
截取字符串:(字符串默认从0开始)
echo ${string:1:2}
输出结果
bc
在字符串中查找字符所在的位置
如查找cb所在位置 ,(它会查找到第一个找到的字母位置并返回)
echo expr index "$string" cb
输出结果
2
shell数组
arrs=(v0 v1 v2 v3)
echo ${arrs[0]} #输出下标为0的字符
echo ${arrs[@]} #输出所有的字符
echo ${#arrs[@]} #输出arrs数组内字符的长度
输出结果
v0
v0 v1 v2 v3
4
注释
单行注释
#这是一个单行注释
多行注释
:<<EOF
EOF
:<<!
!
:<<'
'
shell外部传递参数
输出时在执行命令后加上自己输入的值
echo "执行参数名:$0"
echo "执行文件名:$1"
输出时
执行参数名:./hello-world.sh
执行文件名:12
shell 条件if判断语句
` a=1`
b=2`
`if [ $a == $b ]`
`then`
`echo "true"`
`else`
`echo "false"`
`fi`
输出结果
false
shell运算符
expr是一款表达计算的工具,是它完成表达式的求值操作。
#!/bin/bash
a=10
b=15
val=`expr $a + $b`
echo " a + b : $val"
val=`expr $a - $b`
echo "a - b : $val"
val=`expr $a \* $b`
echo "a * b : $val"
val=` expr $a / $b`
echo "a / b : $val"
val=` expr $a % $b`
echo "a % b : $val"
输出结果:
[root@localhost shell]# ./te.sh
a + b : 25
a - b : -5
a * b : 150
a / b : 0
a % b : 10
关系运算符
运算符 | 意义 |
---|---|
-eq | equal等于 |
-ne | not equal 不等于 |
-gt | greater than 大于 |
-lt | less than 小于 |
-ge | greater than or equal 大于等于 |
-le | less than or equal 小于等于 |