Shell編程之循環語句(for、while、until循環語句)

 1、vim

1. 經常使用的轉義字符以下:測試

\b 轉義後至關於按退格鍵(backspace),但前提是「\b」後面存在字符;「\b」表示刪除前一個字符;「\b」表示刪除前一個字符;「\b\b」表示刪除前兩個字符。spa

\c 不換行輸出,在「\c」後面不存在字符的狀況下,做用至關於 echo -n;3d

    可是當「\c」後面仍然存在字符時,「\c」後面的字符將不會被輸出blog

\n 換行,被輸出的字符從「n」處開始另起一行。遊戲

\f  換行,可是換行後的新行的開頭位置鏈接着上一行的行尾;ip

\v 與\f 相同變量

\t  轉之後表示插入tab,即橫向製表符;隨機數

\r 光標移至行首,但不換行,至關於使用「\r」之後的字符覆蓋「\r」以前同等長度的字符;可是當「\r」後面不存在任何字符時,「\」前面的字符不會被覆蓋bfc

\\ 表示插入「\」自己;

echo -n 表示不換行輸出

echo -e 輸出轉義字符,將轉義後的內容輸出到屏幕上

(1)\b  ( 「\b」後面存在字符  ),以下兩個例子:

 

 (2)\c 不換行輸出,在「\c」後面不存在字符的狀況下

 (3)\n 換行,被輸出的字符從「n」處開始另起一行

(4) f  換行,可是換行後的新行的開頭位置鏈接着上一行的行尾;

(5)\v 與\f 相同

(6)\t  轉之後表示插入tab,即橫向製表符

(7)\r 光標移至行首,但不換行,至關於使用「\r」之後的字符覆蓋「\r」以前同等長度的字符;可是當「\r」後面不存在任何字符時,「\」前面的字符不會被覆蓋

(8)\\ 表示插入「\」自己;

2. 

i=`echo "11,22,33,44"`

echo ${i%,*}

11,22,33

\\從最後倒數到最短的匹配部分(用%)後面的逗號的地方被刪除

 

echo ${i%%,*}

11

\\從最後倒數到最長的匹配部分(用%%)後面的逗號的地方都被刪除

 

echo ${i#*,}

22,33,44

\\從開頭到最短的匹配部分(用#)後面的逗號的地方被刪除

 

echo ${i#*,}

44

\\從開頭到最長的匹配部分(用##)後面的逗號的地方被刪除

 

 

 

 2、循環語句

  • for 語句循環
  • while 語句
  • until 循環語句

 1. for語句的結構

  • 讀取不一樣的變量值,用來逐個執行同一組命令

 示例:

for  ((i=1; i<=10; i++))

for i in 取值列表

for i in 1 2 3 4 5 6 7 8 9 10

do

 

done

 一樣使用 seq 命令也有一樣的效果。

 

 for語句的結構

 

 

 

 for 語句應用示例

  • 示例1
    • 批量添加用戶 
    • 用戶名存放在 users.txt 文件中,每行一個
    • 初始密碼均設爲123456
    • 驗證腳本

(1)先建立幾個用戶  vim users.txt

polo g   #若是polo 和 g之間有空格,則表示兩個用戶(下面驗證信息裏查看詳情)
TS
XXXTENTACION
Pharaoh
Shawn

(2)獲取 users.tx 裏面的信息 

 (3)再寫個腳本 vim adduser.sh

 (4)給權限,驗證腳本

 

 (5)查看用戶是否添加成功 vim /etc/passwd

 (6)查看用戶密碼是否建立成功 vim/etc/shadow

 

示例2:

  • 根據IP地址檢查主機狀態
    • IP地址存放在ipadds.txt文件中,每行一個
    • 使用ping命令檢測各主機的連通性

  1. vim ipadds.txt 輸入幾個IP地址 

 

 2. 再寫個ping命令的腳本 vim ping.sh

 3. 給權限、驗證

2. while語句的結構

  • 重複測試某個條件,只要條件成立則反覆執行

 

 

 

 while 語句用於示例

示例1:

  • 批量添加用戶
    • 用戶名稱以stu開頭,按數字順序進行編號
    • 一共添加20個用戶,即stu一、stu二、......、stu20
    • 初始密碼均設爲123456

1. 添加用戶,設置初始密碼

2. 賦給 useradd2.sh 權限並驗證

 

 

 示例2:

  • 猜商品價格遊戲
    • 經過變量RANDOM得到隨機數
    • 提示用戶猜想並記錄次數,猜中後退出循環

首先RANDOM的值是隨機的

 

1. 編輯腳本

 

 2. 給權限

 3. 驗證

 

 3. until 語句的結構

  • 重複測試某個條件,只要條件不成立則反覆執行

 示例:

 until 語句應用示例

示例1:

  • 計算1~50的和值
    • 經過循環累加的方式計算1~50的和值

相關文章
相關標籤/搜索