Shell常用語句及結構

2022-06-03 23:45:20 字數 3805 閱讀 8979

if 語句通過關係運算子判斷表示式的真假來決定執行哪個分支;shell有三種if語句樣式,如下:

語句1if

[ expression ]

then

statement(s) to be executed

if expression is true

fi語句2

if

[ expression ]

then

statement(s) to be executed

if expression is true

else

statement(s) to be executed

if expression is not true

fi語句3

if [ expression 1

]then

statement(s) to be executed

if expression 1 is true

elif [ expression 2

]then

statement(s) to be executed

if expression 2 is true

elif [ expression 3

]then

statement(s) to be executed

if expression 3 is true

else

statement(s) to be executed

if no expression is true

fi

說明判斷表示式可以參考文件:

單中括號與雙中括號的區別請參考:

for迴圈是一種有限迭代迴圈,一般格式如下:

for 變數 in

列表do

command1

command2

...commandn

done

列表是一組值(數字、字串等)組成的序列,每個值通過空格分隔。每迴圈一次,就將列表中的下乙個值賦給變數。in 列表是可選的,如果不用它,for 迴圈使用命令列的位置引數。

示例

for loop in12

345do

echo

"the value is: $loop

"done

while 迴圈用於不斷執行一系列命令,也用於從輸入檔案中讀取資料;命令通常為測試條件。其格式為:

while

command

dostatement(s) to be executed

if command is true

done

命令執行完畢,控制返回迴圈頂部,從頭開始直至測試條件為假。

示例

echo

'type to terminate

'echo -n '

enter your most liked film:

'while

read film

doecho

"yeah! great film the $film

"done

until 迴圈執行一系列命令直至條件為 true 時停止。until 迴圈與 while 迴圈在處理方式上剛好相反。一般 while 迴圈優於 until 迴圈,但在某些時候,也只是極少數情況下,until 迴圈更加有用。格式如下:

until

command

dostatement(s) to be executed

until command is true

done

command 一般為條件表示式,如果返回值為 false,則繼續執行迴圈體內的語句,否則跳出迴圈。

示例

#!/bin/bash

a=0until [ ! $a -lt 10]do

echo

$a a=`expr $a + 1

`done

case ... esac 與其他語言中的 switch ... case 語句類似,是一種多分枝選擇結構。case 語句匹配乙個值或乙個模式,如果匹配成功,執行相匹配的命令。case 語句格式如下:

case 值 in

模式1)

command1

command2

command3

;;模式2)

command1

command2

command3

;;*) command1

command2

command3

;;esac

case 工作方式如上所示。取值後面必須為關鍵字 in,每一模式必須以右括號結束。取值可以為變數或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。;; 與其他語言中的 break 類似,意思是跳到整個 case 語句的最後。

示例

#!/bin/bash

option="$"

case $ in

-f) file="$"

echo

"file name is $file";;

-d) dir="$"

echo

"dir name is $dir";;

*) echo

"`basename $`:usage: [-f file] | [-d directory]

"exit

1 # command to come out of the program with status 1

;;esac

select 迴圈主要用於建立選單,按數字順序排列的選單項將顯示在標準錯誤上,並顯示ps3 提示符,等待使用者輸入;使用者輸入選單列表中的某個數字,執行相應的命令;使用者輸入被儲存在內建變數reply 中。select 是個無限迴圈,因此要記住用break 命令退出迴圈,或用exit 命令終止指令碼。也可以按ctrl+c 退出迴圈。格式如下:

select variable in

list

do迴圈體命令

done

示例

select 經常和case 聯合使用,與for 迴圈類似,可以省略in list ,此時使用位置參量;

#!/bin/bash

select choice in 1yuan 2yuan 5yuan quit ;do

case $choice in

1yuan)

echo

"you can buy a glass of water

";;

2yuan)

echo

"you can buy an ice cream

";;

5yuan)

echo

"you can buy a chicken leg

"echo

"choice $reply

";;

quit)

echo

"bye

"break

;;

*)

echo

"enter error!

"exit

2esac

done

Shell指令碼常用語句

指令碼測試 window 回車是 r n linux 回車是 n yum install y dos2unix 軟體 命令 dos2unix 指令碼名 處理 sh x 與 set x 開始 set x 結束 顯示指令碼執行過程 一.變數 1.區域性變數 只在乙個範圍內使用 普通變數 file ls ...

shell學習 常用語句

為什麼使用shell 可以快速 簡單的完成程式設計,實現自己的想法。shell非常適合編寫小的工具,因為小工具更強調的是易於配置 維護 移植等,而不是執行效率。當自己的想法確實有必要進行優化,有必要讓它更容易修改以及修正設計目的時,可以將shell編寫的工具重新用c c python等語言重新實現。...

mysql常用語句 MySQL常用語句

create table student id int primary key auto increment comment 學號 name varchar 200 comment 姓名 age int comment 年齡 comment 學生資訊 修改表注釋 alter table studen...