shell腳本編程進階

一些常用的編程語句,

過程式編程語言通常分為三種執行方式,分別是

順序執行

選擇執行

循環執行

一、選擇執行語句

1)if語句

選擇執行:if語句可以是單分支選擇,也可以雙分支分支選擇,還可以多分支選擇。而且if語句可嵌套,

單分支

if 判斷條件;then

? ?條件為真的分支

fi

根據判斷條件選擇是否執行下面的分支,如果符合條件,則執行;若不符合,則跳過。

雙分支

if 判斷條件;then

條件為真的分支1

else

條件為假的分支2

fi

根據判斷條件選擇是否執行下面的分支,如果符合條件,則執行分支1;若不符合,則執行分支2。

多分支

if 判斷條件1;then

條件為真的分支

elif 判斷條件2;then

條件為真的分支

elif 判斷條件3;then

條件為真的分支

else

以上條件均不符合的分支

fi

根據判斷條件進行判斷,當判斷條件為真時,執行當前環境下的分支;若判斷條件都不符合,則執行最后一個分支

if語句作為選擇執行語句經常用于條件判斷的情況,可根據不同的條件設計多個分支進行判斷。

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

根據if語句編寫了如下腳本

if1

這是一個雙分支的if判斷語句,利用”id $name”的執行結果來進行判斷,如果$?等于0,則說明該用戶已創立,執行”echo”命令;若$?不等于0,則說明該用戶未創立,則執行”useradd”命令。

執行該腳本,首先輸入已存在的用戶”zhao”,然后輸入為創建的用戶”yjj”,顯示兩種不同的結果。if2

2)case語句

case語句用于多分支的情況,根據變量匹配對應的分支來執行。

case語句格式

case 變量引用 in

par1)

執行分支1

? ? ;;

pat2)

執行分支2

? ? ;;

……

*)

執行分支

? ?;;

seac

case語句支持通配符寫法。

例題: 編寫腳本/root/bin/yesorno.sh,提示用戶輸入yesno,并不區分大小寫

case11

case語句支持通配符寫法,對變量”ans”進行匹配,當”ans”匹配到無論大寫還是小寫的”yes””no”都會顯示對應的分支,當匹配不到時,就會執行最后的默認分支。

case2

case3

二、循環執行語句

循環執行即將某段代碼執行多次,有的語句循環次數已知,即可指定循環多少次;還有循環次數未知的語句,根據進入循環和退出循環的條件來開始或退出循環。

1)for語句

基本格式

for ?變量名 in 列表;do?

? ? 循環體

done

通過列表給變量賦值,執行一次循環,當列表內數值用完,結束循環。

列表可通過以下方式生成

1)直接給出

在”in”后直接列出要循環的數值

2)數列

通過{start..end}表示一個集合作為列表

3)用命令生成列表

例如”ls ~root/”命令可顯示root家錄下文件名。

4)通配符生成列表

例如”*.sh”可顯示”sh”后綴文件作為循環列表

5)還可使用變量作為列表

例題: 編寫腳本,提示輸入正整數n的值,計算1+2+…+n的總和

for1

用”seq”列出1到n的值,循環相加從1加到n,最后輸出結果

for2

2)white語句

3)until語句

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90489

(2)
yoyiccccyoyicccc
上一篇 2017-12-23
下一篇 2017-12-23

相關推薦

  • class 11 壓縮軟件(二)、shell編程(三)和軟件包管理(一)

    一、壓縮軟件(二) tar tar [OPTION]… (1) 創建歸檔     tar -c -f / PATH/TO/SOMEFILE .tar FILE…     tar cf…

    Linux干貨 2016-08-21
  • 淺談編譯kernel+busybox構建擁有遠程ssh登錄和web功能最小linux系統(二)

    忘了介紹本文的源碼的版本了 dropbear-2013.58.tar.bz2    busybox-1.21.1.tar.bz2 linux-3.13.6.tar.xz  nginx-1.4.7 基于上文,我們還差group文件沒有寫 root@mysql etc]# vi group  …

    Linux干貨 2015-09-22
  • Linux磁盤管理詳解

    linux磁盤管理 添加磁盤步驟: fdisk 管理磁盤分區 格式化文件系統。 設備掛載 開機自動掛載 UUID掛載 取消掛載點 Parted(gpt大于2G分區) 查看文件系統的使用情況。 df 查看掛載信息與磁盤使用量 du 查看使用量 查看分區狀況lsblk 查看設備信息blkid linux磁盤管理 當全新安裝了一塊新的硬盤設備后,為了更充分、安全的…

    Linux干貨 2016-09-07
  • 第四周小結

    這周我們主要學習了寫腳本的簡單語法,寫了一些簡單的腳本,下面就由我來簡單介紹一下: 第一步使用文本編輯來創建腳本: 創建好后在里面寫想要運行的腳本即可,然后按Esc—wq退出保存即可。也可以按q不保存退出;q!不保存強制退出;wq!保存強制退出。 第二步運行腳本,給予執行權限,在命令行上指定腳本的相對路徑和絕對路徑 對了,當在腳本里輸入內容時,要Ese&#8…

    2017-08-06
  • 8.3_Linux文件系統權限和特殊權限淺析

    什么是Linux文件系統權限? 在Linux中的每一個文件或目錄都包含有訪問權限,這些訪問權限決定了誰能訪問和如何訪問這些文件和目錄。 Linux文件系統權限的分類 Linux中的權限分為:read(讀)、write(寫)、execut(執行)三種權限 文件和目錄表示的權限也各有不同 權限對于文件的意義: r: 可使用文件查看類工具獲取其內容 w: 可修改內…

    Linux干貨 2016-08-05
  • Linux系統中文件權限(特殊權限)的相關認識

    文件屬性 在linux系統中一切皆文件,所有的數據都是以文件的形式存儲在系統中,我們可以通過ls命令可以查看文件的相關屬性,如下圖:                                &n…

    Linux干貨 2016-08-04
欧美性久久久久