if基本语法语义

if判断
if [ 条件判断式 ];then
程序
fi
或者
if [ 条件判断式 ];

then
程序
fi

if判断语句演示
脚本内容

#!/bin/bash
#if判断传入参数是否等于1,eq是条件表达判断式语句,-eq的意思是等于
if [ $1 -eq 1 ];then     # 如果 输入参数 等于 1
    echo [OK!!!]         # 则打印OK!
elif [ $1 -eq 2 ];then   # 再如果 输入参数 等于2
    echo [NO...]         # 则打印NO,如果输入的大于2就没有输出
fi                       # 以fi结尾

run

root@wordpress ~# bash if.sh
if.sh: line 3: [: -eq: unary operator expected
if.sh: line 5: [: -eq: unary operator expected
root@wordpress ~#

如果你不知道为什么出错,你可以看看前面的文章.这里出错的原因是你没有传入参数

root@wordpress ~# bash if.sh  1
[OK!!!]
root@wordpress ~# bash if.sh  2
[NO...]
root@wordpress ~# bash if.sh  3
root@wordpress ~#

------------------------------------if判断语句分割线---------------------------------------
case语句基本语法
case $variable_name in
"值 1")
如果变量值等于1,则执行程序1.
;;
"值 2")
如果变量值等于2,则执行程序2
;;
...省略其他分支...
*)
注意事项:
1.case行尾必须为单词"in",每一个模式匹配必须以右括号")"结束
2.双分号";;"表示命令序列结束,相当于break
3.最后的"*)"表示默认模式,相当于default

实际演示
脚本内容

root@wordpress ~# cat case.sh
#!/bin/sh

case $1 in                        # 特殊变量接收参数 in为行尾(个人理解in为索引的意思)
    1)
        echo Man!                 # 参数是1则打印这个
        ;;                        # 双分号结束这行
    2)
        echo Woman                # 参数是2则打印这个
        ;;
    *)
        echo "NO MAN NO WOMAN"    # 其他参数则打印这个
        ;;
esac                              # esac为结尾

执行

root@wordpress ~# bash case.sh 1
Man!
root@wordpress ~# bash case.sh 2
Woman
root@wordpress ~# bash case.sh 3
NO MAN NO WOMAN

-------------------------------------------case语句结束-------------------------------------------

for循环语句基本语法
(1)
for ((初始值;循环控制条件;变量变化))
do
   程序
done
(2)
for 变量 in 值1 值2...
do
   程序
done

实际演示
(1)脚本内容

root@wordpress ~# cat for.sh
#!/bin/sh

for((i=1;i<=100;i++))  # 设置变量 循环控制条件 变量变化
do                     # 开始
    s=$[$s+$i]         # 运算符运算
done                   # 完成
echo $s                # 打印最终结果

执行

root@wordpress ~# bash for.sh
5050

 
(2)脚本内容

root@wordpress ~# cat for1.sh
#!/bin/sh

for i in $*                  # 没加引号,这个变量不是一个整体
do
    echo You entered this $i
done

for o in $@
do
    echo You entered this $o
done

执行

root@wordpress ~# bash for1.sh 1 2 3 4 5
You entered this 1
You entered this 2
You entered this 3
You entered this 4
You entered this 5
You entered this 1
You entered this 2
You entered this 3
You entered this 4
You entered this 5

 
整体变量

root@wordpress ~# cat for1.sh
#!/bin/sh

for i in "$*"                  # 加上"引号"$*就是一个整体了,$*本身就是一个整体变量,不论用户输入多少参数,这个变量都会把它看
do                             #成一个整体,整体的参数传入i这个变量然后进入循环打印,打印出来也就是一整个参数的样子
    echo You entered this $i
done

for o in "$@"                  # 加上了引号这个"$@"它还是会把用户输入参数区别开来,一个一个的把参数传入变量o,然后循环一个一
do                             #个打印出来
    echo You entered this $o
done

执行

root@wordpress ~# bash for1.sh 1 2 3 4 5 6 7 8 9
You entered this 1 2 3 4 5 6 7 8 9
You entered this 1
You entered this 2
You entered this 3
You entered this 4
You entered this 5
You entered this 6
You entered this 7
You entered this 8
You entered this 9

==========================for语句结束==========================
while基本语法
while是条件循环语句
while [ 条件表达式 ]
do
   程序
done

实际演示
脚本内容

#!/bin/sh

i=0                      # while循环不像for,想要执行循环得有条件
s=0                      # 这些变量就是循环的条件
while [ $i -le 100 ]     # 条件循环 [ 条件表达式 ] (-le是小等于的意思)  满足条件开始循环
do
    s=$[$i+$s]           # 运算符
    i=$[$i+1]            # 每计算一次,条件参数值增加一次,直到101,条件不满足停止循环
done
echo $s

执行

root@wordpress ~# bash while.sh
5050

 
for循环和while循环区别
while:当满足某种循环条件时才会进行循环,符合条件循环继续执行,否则退出循环.所以循环前要把条件基础设置好,否则不能运行循环
for:


You got to put the past behind you before you can move on.