shell语法

一、if 语句

if [ $VART -eq 10 ]
then
    echo "true"
else
    echo "false"
fi

二、case语句

case $变量 in
  "内容1")
      程序1
  ;;
  "内容2")
      程序2
  ;;
  *)     #匹配其他所有情况
      程序3
  ;;
esac

三、for 循环

for var in con1 con2 con3 ...
do
  程序
done

四、while 循环

while [ condition ]
do
  程序
done

五、break跳出循环

for VAR in 1 2 3
do
#   如何 VAR 等于 2 就跳出循环
    if [ $VAR -eq 2 ]
    then
        break
    fi

    echo $VAR
done

六、continue跳过本次循环

#!/bin/bash 

for VAR in 1 2 3
do
#   如果 VAR 等于 2,就跳过,直接进入下一次 VAR = 3 的循环 
    if [ $VAR -eq 2 ]
    then
        continue    
    fi

    echo $VAR
done

Shell 函数

1. 定义函数

有 3 种常见格式:

格式一:
function 函数名 () {  
        指令...  
}  

格式二:
function 函数名 {  
        指令...  
} 

格式三:
函数名 () {  
    指令...  
}

例如:

#!/bin/bash 

function hello_world(){
    echo "hello world fun"
    echo $1 $2
    return 1
}


function hello_world{
    echo "hello world fun"
    echo $1 $2
    return 1
}

hello()
{
    echo "hello fun"
}

2. 调用函数

如何调用上面的 3 个函数呢?

# 1. 直接用函数名调用 hello 函数
hello

# 2. 使用「函数名 函数参数」来传递参数
hello_world 1 2   # 1 2就是传递的参数$1 $2这里是使用位置参数传递的

# 3. 使用「FUN=`函数名 函数参数`」 来间接调用
FUN=`hello_world 1 2`
echo $FUN

3. 获取返回值

如何获取 hello_world 函数的返回值呢?还记得 $? 吗?

hello_world 1 2
# $? 可用于获取前一个函数的返回值,这里结果是 1 
echo $?

总结

语法是一种功能实现的方法,一套shell脚本是否优秀在于其复用性高不高、在于环境兼容性强不强、在于规范恰当不恰当,当然最重要的是稳定性,不稳定的自动化脚本犹如尘垢粃糠炊沙成饭,远不及手动部署简切了当

具体应用后续再与大家详谈!