shell 三 基本命令 條件迴圈

2022-05-18 16:55:21 字數 3987 閱讀 2734

目錄for迴圈

while迴圈

until迴圈

case-多選擇語句

跳出迴圈

if condition

then

command1

command2

...commandn

fi#寫成一行,如下:

if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi

if condition

then

command1

command2

...commandn

else

command

fi

if condition1

then

command1

elif condition2

then

command2

else

commandn

fi

例子1:

a=10

b=20

if [ $a == $b ]

then

echo "a 等於 b"

elif [ $a -gt $b ]

then

echo "a 大於 b"

elif [ $a -lt $b ]

then

echo "a 小於 b"

else

echo "沒有符合的條件"

fi#結果

a 小於 b

例子2:

num1=$[2*3]

num2=$[1+5]

if test $[num1] -eq $[num2]

then

echo '兩個數字相等!'

else

echo '兩個數字不相等!'

fi#結果:

兩個數字相等!

for var in item1 item2 ... itemn

do command1

command2

...commandn

done

#寫成一行

for var in item1 item2 ... itemn; do command1; command2… done;

例子1:

for loop in 1 2 3 4 5

do echo "the value is: $loop"

done

#結果:

the value is: 1

the value is: 2

the value is: 3

the value is: 4

the value is: 5

例子2:

for str in 'this is a string'

do echo $str

done

#結果:

this is a string

while condition

do command

done

例子1

#!/bin/bash

int=1

while(( $int<=5 ))

do echo $int

let "int++"

done

#結果:12

345#注意: bash let 命令,它用於執行乙個或多個表示式,變數計算中不需要加上 $ 來表示變數

例子2,while迴圈能讀取鍵盤資訊

echo '按下 退出'

echo -n '輸入一段字串: '

while read film

do echo "你輸入的是:$film "

done

#結果按下 退出

輸入一段字串: 今天是星期二

你輸入的是:今天是星期二

例子3:無限迴圈

while :

do command

done

#或者while true

do command

done

#或者for (( ; ; ))

until 迴圈執行一系列命令直至條件為 true 時停止。

until 迴圈與 while 迴圈在處理方式上剛好相反

until condition

do command

done

例子1:

#!/bin/bash

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

do echo $a

a=`expr $a + 1`

done

#結果:01

2345

6789

case 值 in

模式1)

command1

command2

...commandn

;;模式2)

command1

command2

...commandn

;;esac

取值後面必須為單詞in,每一模式必須以右括號結束。取值可以為變數或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。

例子1:

echo '輸入 1 到 4 之間的數字:'

echo '你輸入的數字為:'

read anum

case $anum in

1) echo '你選擇了 1'

;;2) echo '你選擇了 2'

;;3) echo '你選擇了 3'

;;4) echo '你選擇了 4'

;;*) echo '你沒有輸入 1 到 4 之間的數字'

;;esac

#結果輸入 1 到 4 之間的數字:

你輸入的數字為:

3你選擇了 3

break命令允許跳出所有迴圈(終止執行後面的所有迴圈)。

例子1:

#!/bin/bash

while :

do echo -n "輸入 1 到 5 之間的數字:"

read anum

case $anum in

1|2|3|4|5) echo "你輸入的數字為 $anum!"

;;*) echo "你輸入的數字不是 1 到 5 之間的! 遊戲結束"

break

;;esac

done

#結果輸入 1 到 5 之間的數字:3

你輸入的數字為 3!

輸入 1 到 5 之間的數字:7

你輸入的數字不是 1 到 5 之間的! 遊戲結束

continue命令與break命令類似,只有一點差別,它不會跳出所有迴圈,僅僅跳出當前迴圈。

例子1:

#!/bin/bash

while :

do echo -n "輸入 1 到 5 之間的數字: "

read anum

case $anum in

1|2|3|4|5) echo "你輸入的數字為 $anum!"

;;*) echo "你輸入的數字不是 1 到 5 之間的!"

continue

echo "遊戲結束"

;;esac

done

#結果執行**發現,當輸入大於5的數字時,該例中的迴圈不會結束,語句 echo "遊戲結束" 永遠不會被執行。

Shell基本命令

1命令列補全和萬用字元 輸入檔案或目錄或命令的時候,當輸入一部分時候,按下 tab鍵,會自動補全資訊 使用 匹配任意多個字元,find cfg 會查詢到所有的。cfg結尾的檔案 2 pwd 顯示當前目錄 3 cd 切換目錄 cd.返回上級目錄 cd返回使用者主目錄 4 ls 列出目錄內容 ls a ...

shell基本命令1

基礎命令 1.顯示時間和日期的命令 date date 2014年 02月 23日 星期日 14 59 20 cst date y m d 2014 02 23 date h m 14 59 2.顯示日曆 cal cal 二月 2014 日 一 二 三 四 五 六 1 2345 678 910111...

常用Shell基本命令

常用shell命令 一 命令列和shell的關係 在很多不正式的場合,命令列和shell這倆個詞代表相同的意思,即命令直譯器。嚴格來講 命令列是指供使用者輸入命令的介面,其本身只接受輸入,然後把命令列傳遞給命令直譯器 shell是乙個程式,在使用者和作業系統之間提供了乙個面向行的可互動介面。使用者在...