linux指令碼 結構化命令

2021-08-14 05:22:00 字數 3313 閱讀 4662

根據條件從而跳過某些命令.其語法格式為:

if command

then

command

fi#結束語句

如果command命令的狀態執行碼為0,那麼將會執行then後面的語句,否則將不會執行.

if-else-then語句,語法格式為:

if command

then

command

else

command

fi 另外一種形式為:

if command1

then

commands

elif commands

then

more commands

fi 如果狀態執行碼為0,那麼就會執行then後面的命令.如果狀態執行碼為正數,那麼就會跳轉到elif語句.繼而判斷command命令執行後的狀態執行碼,若為0,則執行then後面的命令.

test命令:test命令測試會返回狀態執行碼.語法格式為test condition.在if-else語句中使用test命令,其語法格式如下:

if test condition

then

command

fi 看如下**,

#!/bin/bash

my_variable=」full」

if test my

vari

able

then

echo

「the

my_variable expression returns a true」

else

echo 「the $my_variable expression return a false」

fi test命令可以用在三模擬較中,數值比較,字串比較,檔案比較. 比較

描述n1 -eq n2

檢查n1是否等於n2

n1 -ge n2

檢查n1是否大於或者等於n2

n1 -gt n2

檢查n1是否大於n2

n1 -le n2

檢查n1是否小於或者等於n2

n1 -lt n2

檢查n1是否小於n2

n1 -ne n2

檢查n1是否不等於n2

- 字串比較:

- | 比較 | 描述 |

|——–|——–|

|str1 =str2 | 檢查str1和str2是否相等|

|str1 != str2 |檢查str1與str2不同 |

| str1 < str2|檢查str1是否比str2小|

|str1 > str2|檢查str1是否比str2大|

|-n str|檢查str的長度是否非0|

|-z str|檢查str的長度是否為0|

在使用大小比較時,需要對》和《進行轉義,不然會當成重定向輸出.

- 檔案比較

比較描述

-d file

檢查檔案是否存在並是乙個目錄

-e file

檢查檔案是否存在

-f file

檢查file是否存在並是乙個檔案

-r file

檢查file是否存在並可讀

-s file

檢查file是否存在並非空

-w file

檢查file是否存在並可寫

-x file

檢查file是否存在並可執行

看如下**:

if [ -e lo

cati

on]t

hene

cho「

okon

the location directory」

echo 「now checking on the file ,fi

lena

me」i

f[−e

location/fi

lena

me]t

hene

cho「

okon

thef

ilen

ame」

echo

「upd

atin

gcur

rent

date

…」da

te>>

location/fi

lena

meel

seec

ho「f

iled

oesn

otex

ist」

echo

「not

hing

toup

date

」fie

lsee

cho「

the location directory does not exist」

echo 「nothing to update」

fi 3. 符合條件測試:其命令格式為:

[ condition1 ] && [ condition2 ]

[ condition1 ] || [ condition2 ]

4.case命令:其命令格式為:

case variable in

pattern1|pattern2)command;;

pattern3) command;;

pattern) command;;

default command;;

esac

看以下**:

#!/bin/bash

#using the case command

case us

erin

ctw|

barb

ara)

echo

「wel

come

, user」

echo 「please enjoy your visit」;;

testing)

echo 「special testing account」;;

jessai)

echo 「do not forget to log off when you』re done」;;

*) echo 「sorry,you』re not allowed here」;;

esac

5. if-else高階特性:

- 使用雙括號:其格式為(( expression )),雙括號中的大於小於符號不需要進行轉義

- 使用雙方括號:[[ expression ]],針對於字串比較.

linux結構化命令 for迴圈

for迴圈命令基本格式 for var in list do commonds done 測試指令碼 執行結果如下 讀取列表中的複雜值 修改test3.sh如下,執行結果如下 如上可以看到,第二次迴圈的時候,列印的字沒有分割開,而是多個單詞 dont know thisll 而且單引號也沒有了。這是...

shell指令碼結構化之迴圈命令

迴圈是程式設計的乙個重要部分,bash shell提供了三種可用於指令碼中的循壞命令 for 命令 while命令 until 命令 這些都沒有好講的,注意下格式就行了,看兩個例項 bin bash ifs for folder in path doecho folder forfile in fo...

shell指令碼的結構化條件判斷命令

程式可以說就是結構化加上演算法,現在就來講講shell指令碼的結構化命令 結構化命令允許你改變shell指令碼的正常執行流。最基本的結構化命令是if then語句。也可以擴充套件if then語句,加入if then else語句。如果希望在測試失敗時加上額外的測試,if then elif語句。i...