国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

Shell腳本的條件控制和循環(huán)語句

2019-10-26 18:48:10
字體:
供稿:網(wǎng)友

條件判斷:if語句

語法格式:

if [ expression ]thenStatement(s) to be executed if expression is truefi

注意:expression 和方括號([ ])之間必須有空格,否則會有語法錯誤。

if 語句通過關系運算符判斷表達式的真假來決定執(zhí)行哪個分支。Shell 有三種 if ... else 語句:

if ... fi 語句if ... else ... fi 語句if ... elif ... else ... fi 語句

示例:

#!/bin/bash/a=10b=20if [ $a == $b ]then echo "a is equal to b"elif [ $a -gt $b ]thenecho "a is greater to b"elseecho "a is less to b"fi

if ... else 語句也可以寫成一行,以命令的方式來運行:

a=10;b=20;if [ $a == $b ];then echo "a is equal to b";else echo "a is not equal to b";fi;

if ... else 語句也經(jīng)常與 test 命令結合使用,作用與上面一樣:

#!/bin/bash/a=10b=20if test $a == $b then echo "a is equal to b"elseecho "a is not equal to b"fi

分支控制:case語句

case ... esac 與其他語言中的 switch ... case 語句類似,是一種多分枝選擇結構。

示例:

#!/bin/bash/grade="B"case $grade in "A") echo "Very Good!";;"B") echo "Good!";;"C") echo "Come On!";;*) echo "You Must Try!"echo "Sorry!";;esac

轉(zhuǎn)換成C語言是:

#include <stdio.h>int main(){char grade = 'B';switch(grade){case 'A': printf("Very Good!");break;case 'B': printf("Very Good!");break;case 'C': printf("Very Good!");break;default: printf("You Must Try!");printf("Sorry!");break;}return 0;}

對比看就很容易理解了。很相似,只是格式不一樣。

需要注意的是:

取值后面必須為關鍵字 in,每一模式必須以右括號結束。取值可以為變量或常數(shù)。匹配發(fā)現(xiàn)取值符合某一模式后,其間所有命令開始執(zhí)行直至 ;;。;; 與其他語言中的 break 類似,意思是跳到整個 case 語句的最后。

取值將檢測匹配的每一個模式。一旦模式匹配,則執(zhí)行完匹配模式相應命令后不再繼續(xù)其他模式。如果無一匹配模式,使用星號 * 捕獲該值,再執(zhí)行后面的命令。

再舉一個例子:

#!/bin/bashoption="${1}"case ${option} in"-f") FILE="${2}"echo "File name is $FILE";;"-d") DIR="${2}"echo "Dir name is $DIR";;*) echo "`basename ${0}`:usage: [-f file] | [-d directory]"exit 1 # Command to come out of the program with status 1;;esac

運行結果:

$./test.shtest.sh: usage: [ -f filename ] | [ -d directory ]./test.sh -f index.htmlFile name is index.html

這里用到了特殊變量${1},指的是獲取命令行的第一個參數(shù)。

for循環(huán)

shell的for循環(huán)與c、php等語言不同,同Python很類似。下面是語法格式:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 芒康县| 浮梁县| 元朗区| 光山县| 凤城市| 杨浦区| 宜良县| 漠河县| 敦化市| 济阳县| 新蔡县| 凤庆县| 盐亭县| 博兴县| 阳城县| 白玉县| 武义县| 靖边县| 宁安市| 巢湖市| 土默特左旗| 本溪| 民县| 泊头市| 庄河市| 漳平市| 额尔古纳市| 临城县| 白银市| 揭阳市| 奉新县| 黑河市| 九龙县| 德兴市| 罗平县| 抚宁县| 天长市| 湘潭县| 陇川县| 仁布县| 弥渡县|