shell指令碼和流程控制

2021-08-07 09:47:36 字數 2928 閱讀 3894

輸出

echo

注釋以#開頭,但唯獨第一行不是注釋,他代表當前shell的型別,下面寫乙個小例子

#!/bin/bash

#直接寫命令

#輸出當前時間

date

#輸出當前使用者資訊

who#建立變數,變數和等號之間不能有空格,當字串之間沒有空格時可以直接賦值,有空格的要加雙引號

str1=i

str="$str1 love you"

#命令的結果作為變數值,一種是反引號中間寫命令,一種是$(),括號中間寫命令

text1=`date`

text2=$(who)

#輸出當前變數值,echo $加變數名

echo $text1

#如果輸出特殊字元,需要用\轉義

grep命令查詢

bash在當前指令碼出現的位置,-n表示當前行數

#輸出為#!/bin/bash

grep bash linux.sh

grep -n bash linux.sh

#輸出為1:#!/bin/bash

0成功

127 沒有找到命令

1 位置錯誤

126 命令不可執行

if else語句

格式 只有if命令的退出狀態碼為0才會執行then部分

if 命令

then

命令 fi

例子

tesure=lady

#查詢passwd裡面是否有對應的目錄

if grep $tesure /etc/passwd

then

echo 「ok」

#如果passwd沒有這個目錄,在判斷是否有這個目錄

elif ls -d /home/¥tesure

then

echo 」使用者不存在,但主目錄仍然存在「

#其他情況

else

#可以繼續巢狀if

echo 「not exit」

fi

test 命令,如果條件成立,test命令以狀態0退出,if條件成立,不成立以非0退出

test 條件

test命令的簡寫為[ 條件 ]注意條件與中括號之間的空格

#!/bin/bash

if [ 10 -eq 10]

then

echo 「相等」

else

echo 「不相等」

fi

test數值的比較

test字串的比較

test檔案比較

#!/bin/bash

mydirr=/usr/linux

#-d檢查目錄是否存在

if[ -d $mydir ]

then

echo」存在」

ls else

echo「不存在」

fi

多個條件的是時候

if[ ]&&[ ]

如何使用任意數學賦值或者比較表示式++,–,=,>,<,==,||等符號,用雙括號包圍表示式

if(( a++ >90 ))

。。。

case 語句

格式,注意雙引號

case 命令

case 變數 in

patt1) 命令;;

pqtt2) 命令;;

*) 預設命令;;

esac

例子

#!/bin/bash

tes=good

case $tes in

good)

echo 「hi」;;

*) echo 「jjj」;;

esac

for迴圈

格式

for 命令

for var in list

do 命令

done

例子

#!/bin/bash

for item in 1 2 3 4 5

do echo $item

done

#輸出為1 2 3 4 5

例子

list=「win–hhh–sfsf-fsdf」

ifs=$- -

for item in $list

doecho $item

done

#輸出為win hhh sfsf fsdf

while 迴圈

格式

while test命令或者【】

do 命令

done

例子

#!/bin/bash

a=10

while [ $a -gt 0 ]

do echo 「1」

賦值不用使用美元符號

a=[ $a-1]

done

shell指令碼之流程控制語句

一 分支控制語句 1 if fi條件 if condition then action fi2 if else fi條件 if condition then action else action fi3 if else if else fi條件 if condition then action el...

15Shell指令碼 流程控制

流程控制語句 儘管可以通過使用linux命令 管道符 重定向以及條件測試語句編寫最基本的shell指令碼,但是這種指令碼並不適用於生產環境。原因是它不能根據真實的工作需求來調整具體的執行命令,也不能根據某些條件實現自動迴圈執行。例如,我們需要批量建立 1000 為使用者,首先要判斷這些使用者是否已經...

Shell流程控制

case迴圈 if condition condition then statements if true 1 elif condition condition then statements if true 2 else statements if all else fails fi注 方括號中的...