Shell Script简介

    技术2022-05-11  115

    2. if then else

    语法以及流程图如下 │ FALSE if (condition) <condition>—————┐ then │TRUE │ then-commands then-commands else-commands else ├————————┘ else-commands │ fi 3. if then elif

    语法以及流程图如下 │ FALSE if (condition1) <condition1>—┐ then │TRUE │ FALSE commands1 commands1 <condition2>—┐ elif (condition2) │ │TRUE │ then │ commands2 commands3 commands2 ├—————┴————┘ else │ commands3 commands3 fi echo 'word 1: /c' read word1 echo 'word 2: /c' read word2 echo 'word 3: /c' read word3 if (test "$word1" = "$word2" -a "$word2" = "$word3") then echo 'Match: words 1, 2, & 3' elif (test "$word1" = "$word2") then echo 'Match: words 1 & 2' elif (test "$word1" = "$word3") then echo 'Match: words 1 & 3' elif (test "$word2" = "$word3") then echo 'Match: words 2 & 3' else echo 'No match' fi 

    4. for in

    语法以及流程图如下 │ FALSE for var in arg-list ┌—<arg-list还有东西吗?>—┐ do │ │TRUE │ commands │ 从arg-list取得一项 │ done │ 放到变数var │ │ │ │ │ commands │ └——————┘ │ ┌———————————┐ ┌———————┘ │for a in xx yy zz │ │ │ do │ │ echo $a │ │done │ └———————————┘ 结果如下: xx yy yy zz 5. for

    语法以及流程图如下 │ FALSE for var ┌—<参数中还有东西吗?>—┐ do │ │TRUE │ commands │ 从参数中取得一项 │ done │ 放到变数var │ │ │ │ │ commands │ └—————┘ │ 档名:lstarg ┌———————┘ ┌———————————┐ │ │for a │ │ do │ │ echo $a │ │done │ └———————————┘ $lstarg xx yy zz xx yy yy zz 6. while

    语法以及流程图如下 │ FALSE while (condition) ┌—<condition>—┐ do │ │TRUE │ commands │ commands │ done └————┘ │ ┌————┘ │ ┌———————————————┐ │number=0 │ │while (test $number -lt 10) │ │ do │ │ echo "$number/c" │ │ number=`expr $number + 1` │ │done │ │echo │ └———————————————┘ 结果如下: 0123456789 7. until

    语法以及流程图如下 │ TRUE until (condition) ┌—<condition>—┐ do │ │FALSE │ commands │ commands │ done └————┘ │ ┌————┘ │ 它和while 的不同只在於while 是在条件为真时执行回圈,而until 是在条件为假时执行回圈。 8. break及continue

    这两者是用於for, while, until 等回圈控制下。break 会跳至done後方执行,而continue会跳至done执行,继续执行回圈。 9. case

    语法以及流程图如下 │ TRUE case str in <str=pat1>————commands1—┐ pat1) commands1;; │FALSE TRUE │ pat2) commands2;; <str=pat2>————commands2—┤ pat3) commands3;; │FALSE TRUE │ esac <str=pat3>————commands3—┤ │FALSE │ ├————————————┘ │ 而pat 除了可以指定一些确定的字串,也可以指定字串的集合,如下 * 任意字串 ? 任意字元 [abc] a, b, 或c三字元其中之一 [a-n] 从a到n的任一字元 | 多重选择 ┌———————————————┐ │echo 'Enter A, B, or C: /c' │ │read letter │ │case $letter in │ │ A|a) echo 'You entered A.';;│ │ B|b) echo 'You entered B.';;│ │ C|c) echo 'You entered C.';;│ │ *) echo 'Not A, B, or C';; │ │esac │ └———————————————┘ 10. 函数 格式如下 function-name() { commands } 而要呼叫此函数,就像在命令列下直接下命令一般。


    最新回复(0)