shell 语法08-shell主要语法结构

if语法结构

单分支结构

if <条件表达式>
    then
		指令
if
if <条件表达式>;then
    指令
if

双分支结构

if <条件表达式>
    then
		指令
    else
        指令
if

多分支结构

if <条件表达式>
    then
    		指令
    elif <条件表达式>
        then
            指令
    elif <条件表达式>
        then
            指令
    else
        指令
if

if条件语句多种条件表达式语法

test条件表达式

if test 表达式
    then
        指令
fi

[]条件表达式

if [ 字符串或算术表达式 ]
    then
        指令
if

[[]]条件表达式

if [[ 字符串表达式 ]]
    then
        指令
if

(())条件表达式

if ((算术表达式))
    then
        指令
if

命令表达式

if 命令
    then
        指令
if

shell函数语法结构

function 函数名() {
    指令 ......
    return n
}
function 函数名 {
    指令 ......
    return n
}
函数名() {
    指令 ......
    return n
}

shell的case语法结构

case "变量" in
    值1)
        指令1 ......
        ;;
    值2)
        指令2 ......
        ;;
    *)
        指令3 ......
esac

shell的while语法结构

# 当条件成立是,进入循环执行指令
while <条件表达式>
do
    指令
done

shell的until语法结构

# 当条件不成立是,进入循环执行指令
until <条件表达式>
do
    指令
done

shell的for语法结构

for 变量名 in 变量取值列表
do
    指令 ......
done
for ((exp1; exp2; exp3))
do
    指令 ......
done

shell的select语法结构

select 变量名 [ in 菜单取值列表 ]
do
    指令 ......
done

shell的数组语法结构

1、用小括号将变量值括起来赋值给数组变量,每个变量值之间要用空格进行分隔

array=(value1 value2 value3 ......)

2、用小括号将变量值括起来,同时采用键值对的形式赋值。

array=([1]=one [2]=two [3]=three)

3、通过分别定义数据变量的方法来定义

array[0]=a;array[1]=b;array[2]=c;

4、动态地定义数组变量,并使用命令的输出结果作为数组的内容

array=($(命令))
array=(`命令`)

打印命令

打印指定元素

echo ${array[i]}

打印所有元素

echo ${array[@]}
echo ${array[*]}

打印数组长度

echo ${#array[@]}
echo ${#array[*]}

shell脚本运行的相关用法

用法 说明
sh test.sh & 把脚本test.sh放在后台执行
control + c 停止执行当前脚本或任务
control + z 暂停执行当前脚本或任务
bg 把当前脚本或任务放在后台执行
fg 把当前脚本或任务放在前台执行
jobs 查看当前执行的脚本或任务
kill 关闭执行的脚本任务
break n 如果省略n,则表示跳出整个循环,n表示跳出循环的层数
continue n 如果省略n,则表示跳过本次循环,忽略本次循环的剩余代码,进入循环的下一次循环。N表示退到第n层继续循环。
exit n 退出当前shell程序,n为上一次程序执行的状态返回值。在下一个shell里可通过$? 接收n值。n值可以省略。
return n 用于在函数里作为函数的返回值,以判断函数执行是否正确。可通过$? 接收n值。
原文地址:https://www.cnblogs.com/liangjingfu/p/9468531.html