1.前言
shell编程是很重要的,不管是对于系统运维还是数据库运维都是必须要掌握的核心技能
2.变量
(1)定义变量
name=tom
(2)撤销变量
unset name
(3)声称全局变量 -->该子shell进程也能继承该变量
export name
(4)声称静态变量 -->静态变量不能被修改,不能被撤销
readonly name=tom
3.变量的语法规则
- 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
- 等号两侧不能有空格
- 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
- 变量的值如果有空格,需要使用双引号或单引号括起来。
4.特殊变量
$n: $0 :代表的是当前脚本的名称 $1 :代表脚本后面跟的第一个参数,$2:代表脚本后面的第二个参数,$3...$n 以此类推 $# :代表输入参数的个数 $*和$@ :都能够返回全部参数,但是只有在循环中且放在引号中能够体现出它们的区别。 $? :返回上一条命令的执行结果,如果上一条命令执行成功,返回0,如果命令执行失败,则返回非0数
5.运算符
((表达式))或[表达式]
[root@apple ~]# echo $((20+30)) 50 [root@apple ~]# echo $(((15+15)*2)) 60 [root@apple ~]# echo $[(15+15)*2] 60
6.条件判断
1.基本语法
- 写法一: test condition
- 写法二:[ condition ] ##注意condition前后均有空格
2.常用判断条件
7.流程控制
1.if 判断句
语法:
if [[ condition ]]; then #statements else #statements fi
或者下面的写法也正确(有验证过)
if [ condition ] then
statments
else
statments
fi
可以看到第一种使用的是双中括号,但是后面的需要跟上; 第二种用的是单中括号,但是后面需要再加上;
2.case分支
case $1 in 1) echo "the value is 1";; 2) echo "the value is 2";; 3) echo "the value is 3";; 4) echo "the value is 4";; *) echo "defult value"
3.for循坏
for (( i=1;i<=10;i++ )) do echo $i done
4.for in循坏
for i in $* do echo $i done
5.while循坏
s=0 i=1 while [ $i -le 100 ] do s=$[$s+$i] i=$[$i+1] done echo $s
或者
s=0 for ((i=0;i<=100;i++)) do s=$(($s+$i)) done echo $
参考文章 https://blog.csdn.net/weixin_48789028/article/details/107691173
https://blog.csdn.net/qq_24393347/article/details/100272360