一、Shell简介
Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。
Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来解释执行程序,如果熟练掌握Shell脚本,可以让我们操作计算机变得更加轻松,也会节省很多时间。
Shell可以被称作是脚本语言,因为它本身是不需要编译的,而是通过解释器解释之后再编译执行,和传统语言相比多了解释的过程所以效率会略差于传统的直接编译的语言。
二、Shell的应用场景
1、Shell能做什么
- 将一些复杂的命令简单化(平时我们提交一次github代码可能需要很多步骤,但是可以用Shell简化成一步);
- 可以写一些脚本自动实现一个工程中自动更换最新的sdk(库);
- 自动打包、编译、发布等功能;
- 清理磁盘中空文件夹。
2、Shell不能做什么
- 需要精密的运算的时候;
- 需要语言效率很高的时候;
- 需要一些网络操作的时候。
三、Shell入门demo
#!/bin/bash
# 基本操作
string="hello world" # 等号前后不能有空格
echo `expr index "$string" lo` # 反引号
for i in "$*"; do # 传入参数
echo $i
done
for i in "$@"; do
echo $i
done
# 四则运算
a=3
b=5
val=`expr $a + $b` # 运算符前后需要空格,表达式需要加expr
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"
# 关系运算符
if [ $a == $b ] # 相等
then
echo "a is equal to b"
else
echo "a is not equal to b"
fi
if [ $a -lt $b ] # 小于
then
echo "a is less than b"
else
echo "a is not less than b"
fi
# 字符串运算符
mtext1="hello"
mtext2="world"
mtext3=$mtext1" "$mtext2 # 字符串的拼接
echo $mtext3
echo ${#mtext3} # 输出字符串长度
echo ${mtext3:1:4} # 截取字符串
# 数组操作
array=(a b c d)
val=${array[1]} # 使用$访问变量
echo $val
len=${#array[*]} # 获取数组长度
echo $len
# 输出程序
echo "hello world" > a.txt # 输出重定向到文件
echo `date` # 输出系统时间
# 循环与判断
for i in {1..5}
do
if [ `expr $i % 2` -eq 0 ] # 判断偶数
then
echo $i
fi
done
for i in ${array[@]}
do
echo $i
if [ $i = "c" ] # 字符串相等判断
then
break # 跳出循环
fi
done
COUNTER=10
while [ $COUNTER -lt 50 ]
do
COUNTER=`expr $COUNTER + 10`
echo $COUNTER
done
# 函数
test1(){
echo "function test1"
}
test1
test2(){
anum=3
bnum=5
return $(($anum+$bunm))
}
test2
result=$?
echo $result
参考:https://www.jianshu.com/p/71cb62f08768