shell結構化語句,判斷,迴圈

2021-08-18 03:26:23 字數 2923 閱讀 2819

命令替換

testing=`date`

testing2=$(

date)

數字運算

test3=$[

1+5 ]#只支援整數運算

var1=10.46

var2=43.67

var3=33.2

var4=71

var5=$( bc<1.txt

scale=4

a1=($var1*$var2)

b1=($var3*$var4)

a1+b1

eof)#浮點型

if-then 只能測試退出狀態碼語句

if -then語句

if

command

then

commands

fi

if-then-else語句

if

command

then

commands

else

commands

fi

if-then-elif-then

if command

then

commands

elif commands

then

commands

fi

test語句

if test condition

then

commands

else

commands

fi#若沒有 condition,則返回狀態碼為非零,直接執行else

數值比較

n1 -eq n2 等於

n1 -ge n2 大於等於

n1 -gt n2 大於

n1 -le n2 小於等於

n1 -lt n2 小於

if [$a

-gt5]

then

echo

"大於"

fi

比較字串

str1 = str2 檢查 str1 是否和 str2 相同

str1 != str2 檢查 str1 是否和 str2 不同

str1 < str2 檢查 str1 是否比 str2 小

str1 > str2 檢查 str1 是否比 str2 大

-n str1 檢查 str1 的長度是否非0

-z str1 檢查 str1 的長度是否為0

var1="abcd"

var2="abcd"

var3="ef"

var4="ef"

if [ -z $var1 ]

then

echo

"dengyu"

else

echo

"budeng"

fi

比較檔案

-d file 檢查 file 是否存在並是乙個目錄

-e file 檢查 file 是否存在

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

-r file 檢查 file 是否存在並可讀

-s file 檢查 file 是否存在並非空

-w file 檢查 file 是否存在並可寫

-x file 檢查 file 是否存在並可執行

-o file 檢查 file 是否存在並屬當前使用者所有

-g file 檢查 file 是否存在並且預設組與當前使用者相同

file1 -nt file2 檢查 file1 是否比 file2 新

file1 -ot file2 檢查 file1 是否比 file2 舊

復合條件

[ condition1 ] && [ condition2 ]

[ condition1 ] || [ condition2 ]

(( a+

+))雙

括號提供

數值高階

計算[[

a ++

))雙括

號提供數

值高階計

算[

[a=r* ]] 雙方括號提供字串高階功能,如模式匹配

case:

case

variable

inpattern1 | pattern2)

commands1;;

pattern3)

commands2;;

*) default commands;;

esac

for命令

list="hello world"

list=$list

" girl"

#注意girl前的空格

for str in

$list

doecho

$str

done

更改字段分隔符

file="/etc/passwd"

ifs=$'\n'

for state in $( head -30

$file )

doecho

$state

done

~

如果要指定多個 ifs 字元,只要將它們在賦值行串起來就行。

ifs=$'\n':;"

這個賦值會將換行符、冒號、分號和雙引號作為字段分隔符

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...

linux結構化命令 for迴圈

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