bash 的過程式和循環式的編寫

       bash腳本的編寫,對于Linux這個多用戶,多任務的系統,有很大的幫助,腳本可以幫助我們定時執行任務,過濾文本,檢查系統性能等等。下面我們來了解一下過程式和循環式腳本的編寫。

使用read 命令來接受輸入

使用read 來把輸入值分配給一個或多個shell 變量:

    -p 指定要顯示的提示

    -t TIMEOUT

read 從標準輸入中讀取值,給每個單詞分配一個變量,所有剩余單詞都被分配給最后一個變量。

read -p “Enter a filename: “ FILE

過程式編程語言分為三種:1.順序執行 2.選擇執行 3.循環執行

條件選擇if 語句

    選擇執行:

    注意:if 語句可 嵌套

    單分支

        if  判斷條件:then

            條件為真的分支代碼

        fi

    雙分支

        if  判斷條件; then

            條件為真的分支代碼

        else

            條件為假的分支代碼

        fi

    多分支

        if  CONDITION1 ; then

            if-true

        elif CONDITION2 ; then

            if-true

        elif CONDITION3 ; then

            if-true

            …

        else

            all-false

        fi

逐條件進行判斷,第一次遇為“真”條件時,執行其分支,而后結束整個if 語句。

if 實例

1 、寫一個腳本/root/bin/createuser.sh ,實現如下功能:使用一個用戶名做為參數,如果指定參數的用戶存在,就顯示其存在,否則添加之;顯示添加的用戶的id 號等信息

bash 的過程式和循環式的編寫

條件判斷:case 語句

case 變量引用 in

PAT1)

    分支1

    ;;

PAT2)

    分支2

    ;;

*)

    默認分支

    ;;

esac

case 支持glob 風格的通配符:

*:  任意長度任意字符

?:  任意單個字符

[] :指定范圍內的任意單個字符

a|b:  a或b

case 實例

1,寫一個腳本/root/bin/yesorno.sh ,提示用戶輸入yes或no, 并判斷用戶輸入的是yes還是no,

bash 的過程式和循環式的編寫

bash 的過程式和循環式的編寫

循環執行:將某代碼段重復運行多次

    重復運行多少次:

        循環次數事先已知

        循環次數事先未知

    有進入條件和退出條件

分為三種:for, while, until

for 循環

for  變量名 in  列表;do    (for的變量名可以不用加$符號)

    循環體

done

執行機制 : 依次將列表中的元素賦值給“變量名“; 每次賦值后即執行一次循環體;  直到列表中的元素耗盡,循環結束。

列表生成方式:

    (1)  直接給出列表

    (2)  整數列表:

        (a) {start..end}

        (b) $(seq [start [step]] end)

    (3)  返回列表的命令

        $(COMMAND)

    (4)  使用glob,如:*.sh

    (5)  變量引用;

        $@, $*

for實例

1,用for編寫一個99乘法表。

bash 的過程式和循環式的編寫

bash 的過程式和循環式的編寫

while 循環

while CONDITION; do

    循環體

done

CONDITION :循環控制條件;進入循環之前,先做一次判斷;每一次循環之后會再次做判斷;條件為“true",則執行一次循環;直到條件測試狀態為“false”終止循環.

因此:CONDTION 一般應該有循環控制變量;而此變量的值會在循環體不斷地被修正

進入條件:CONDITION 為true;(真)

退出條件:CONDITION 為false ;(假)

while實例

1,用while編寫一個99乘法表。

bash 的過程式和循環式的編寫

bash 的過程式和循環式的編寫

until 循環

until CONDITION; do

    循環體

done

進入條件: CONDITION  為false (假)

退出條件: CONDITION  為true(真)

until示例:

 1、隨機生成10 以內的數字,實現猜字游戲,提示比較大或小,相等則退出

bash 的過程式和循環式的編寫

bash 的過程式和循環式的編寫

循環控制語句continue :用于循環體中

continue [N] :提前結束第N 層的本輪循環,而直接進入下一輪判斷;最內層為第1層。

while CONDTIITON1; do

    CMD1

    …

    if CONDITION2; then

        continue

    fi

    CMDn

    …

done

bash 的過程式和循環式的編寫

bash 的過程式和循環式的編寫

循環控制語句break:用于循環體中

break [N] :提前結束第N 層循環, 最內層為第1層。

while CONDTIITON1; do

    CMD1

    …

    if CONDITION2; then

        break

    fi

    CMDn

    …

done

bash 的過程式和循環式的編寫

bash 的過程式和循環式的編寫

循環控制語句exit:用于循環體中

exit :直接結束整個循環,后面的不再執行。

bash 的過程式和循環式的編寫

bash 的過程式和循環式的編寫

創建無限循環

while true; do

    循環體

done

bash 的過程式和循環式的編寫

bash 的過程式和循環式的編寫

until false; do

    循環體

Done

bash 的過程式和循環式的編寫

bash 的過程式和循環式的編寫

原創文章,作者:AN0519,如若轉載,請注明出處:http://www.www58058.com/38874

(0)
AN0519AN0519
上一篇 2016-08-24
下一篇 2016-08-24

相關推薦

  • 01

    0101

    Linux干貨 2016-08-08
  • vim編輯器及shell基礎

    1、復制/etc/rc.d/rc.sysint文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#cp /etc/rc.d/rc.sysint /tmpvim /tmp/rc.sysint:%s@^[[:space:]]\+@#&@g 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/…

    Linux干貨 2017-12-08
  • AWK

    awk:報告生成器,格式化文本輸出         處理方式:文件里有多行,awk處理時,先將第一行放到內存里面,然后將該行分割成列(字段),第一個字段叫$1,第二個字段$2,以此類推,$0代表整行。        &n…

    Linux干貨 2016-09-26
  • N26-第五周博客作業

    一、顯示當前系統上root、fedora或user1用戶的默認shell; [root@promote home]# grep -E ‘^(root|fedora|user1)’ /etc/passwd |cut -d : -f7 /bin/bash /bin/bash /bin/bash [root@promote home]# 注…

    Linux干貨 2017-05-15
  • 馬哥linux運維第一天感受

    101個人的大家庭

    Linux干貨 2018-03-26
  • Linux內核介紹

                               Linux內核介紹 嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基于Linux內核,并且使用GNU工程各種工具和數…

    Linux干貨 2016-10-27
欧美性久久久久