自动化运维——HelloWorld(一)
1.HelloWorld
vi first_shell.sh
#!/bin/bash #Filename: first_shell.sh #auto echo hello world! #by authors steve yu 2019 echo "Hello World!"
chmod o+x first_shell.sh ./first_shell.sh
或者
/bin/bash first_shell.sh
前三行的shell注释规范
第一行,表名是shell脚本文件
第二行注明文件名
第三行注明脚本作用
第四行注明作者
2.变量
shell编程语言是典型的解释型语言,不像c++/Java语言编程时需要先声明变量,shell给一个变量赋值,实际上就是定义了变量,在linux支持的所有shell中,都可使用赋值符号“=”进行遍历赋值
shell遍历可以分为两类,局部变量和环境变量,局部变量只在创建他们的shell脚本中使用,而环境变量则可以创建它们的shell及派生出来的子进程中使用,有些变量是用户创建的,其他是专用的shell变量
加入脚本定义A=123,定义这种变量,前面是变量名,后面试变量值
引用变量可以使用$A,把变量放在脚本中会出现什么效果呢?
#!/bin/bash
#define path variables
#by authors steve yu
A=123
name="steve yu"
echo "This is my First Shell var $A"
echo "My name is $name"
#输出系统变量
echo $UID
echo $PWD
echo $0 #当前脚本
echo $1 #第一个参数
echo $2 #第二个参数
echo $? #判断上一个命令是否正确,正确?是0,其他都是执行错误
echo $* #所有参数
echo $# #参数个数
#显示颜色
echo -e '\033[32m-------------------------------\033[0m'
书写菜单
#!/bin/bash #by authors steve yu 2019 echo -e "\033[32mPlease select menu follow\033[0m" echo "1)安装apache服务器" echo "2)安装mysql服务器" echo "3)安装php服务器" echo "4)配置LAMP WEB架构"
3.if语句
#!/bin/bash #auto if test #by authors steve 2019 NUM1=100 NUM2=200 if (($NUM1>$NUM2));then echo "This $NUM1 greate $NUM2 !" else echo "This $NUM2 greate $NUM1 !" fi
逻辑运算解析
-f 判断文件是否存在 if [ -f filename]
-d 判断目录是否存在 if [ -d dir]
-eq 等于
-ne 不等于
-lt 小于
-gt 大于
-le 小于等于
-ge 大于等于
-a 双方都成立(and)逻辑表达式
-o 单方成立(or)逻辑表达式
案例,判定目录是否存在
#!/bin/bash #auto make dir #by authors steve yu 2019 DIR=/tmp/2019/8/17 if [ ! -d $DIR ];then mkdir -p $DIR echo -e "\033[32mThis $DIR create success!\033[0m" else echo -e "\033[32mThis $DIR is exist,Please exit.\033[0m" fi
截图:
运行结果:
判断文件是否存在
代码:
#!/bin/bash #auto test files #by authors steve yu FILES="/root/a.txt" if [ ! -f $FILES ];then echo "ok" >> $FILES else cat $FILES fi
截图:
运行结果:
比较两数大小
代码:
#!/bin/bash #by steve yu echo -e "\033[32m-------------------\033[1m" if [[ $1 -gt $2 ]]; then echo "第一个变量大于第二个变量"; elif [[ $1 -eq $2 ]]; then echo "第一个变量等于第二个变量"; else echo "第一个变量小于第二个变量"; fi echo -e "\033[0m"
截图:
测试:
视频来源:av8104450
今日刷课【3/20】