所谓脚本其实就是短小的、用来让计算机自动化完成一系列工作的程序,这类程序可以用文本编辑器修改,不需要编译,通常是解释运行的。
一般新安装的centos镜像是不带vim的,可以启动容器,进行安装
#安装vim
apt-get update && apt-get -y install vim
初次体验
#创建一个test脚本
touch test.sh && vim test.sh
#! 是一个约定的标记,它告诉系统这个脚本用什么解释器来执行,即使用哪一种 Shell。
#!/bin/bash
echo "Helloworld!"
执行shell脚本的方法:
1、给文件赋予执行权限,然后执行
chmod +x test.sh
2、直接运行解释器,shell脚本里不需要再指定解释器信息
/bin/bash test.sh
执行./test.sh ./ 是告诉系统就在当前目录找,否则会去Path里找,而path里只存在少数几个bin目录;
执行后输出Helloworld,至此第一个shell完成。
变量
新建一个脚本first.sh
#!/bin/bash
your_name="changhf"
greeting="Hello,$yourname!"
echo $greeting
使用变量可以通过$your_name或者${your_name},可以在" "中使用;变量赋值时,=的两边不能有空格。
参数传递
新建second.sh
#!/bin/bash
echo "执行的文件名:$0";
echo "第一个参数为:$1";
$0表示文件名,输入./second.sh "param1"即可,可以传递多个参数
运算符
原生bash不支持简单的数学运算,但是可以通过expr等命令实现;条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]。
注意:
1、表达式和运算符之间要有空格;
2、完整的表达式要被 ` ` 包含
运算符包括:算数运算符、关系运算符、逻辑运算符、布尔运算符、字符串运算符等。
#!/bin/bash
val=`expr 2 + 2`
echo "两数之和为 : $val"
常用流程控制:
if then fi
if then else fi
if then elif then fi
新建脚本math.sh
a=10
b=20
if [ $a == $b ]
then
echo "a 等于 b"
elif [ $a -gt $b ]
then
echo "a 大于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo "没有符合的条件"
fi
脚本引入
一个脚本文件中引入另一个文件,是很常用的。方法如下:
#可以为相对路径或绝对路径
source first.sh
test1.sh
#!/bin/bash
url="what's your name?"
test2.sh
#!/bin/bash
#引入外部脚本文件
source test1.sh
echo "路径为:$url"
输出:路径为:what's your name?