輸出
echo注釋以#開頭,但唯獨第一行不是注釋,他代表當前shell的型別,下面寫乙個小例子
#!/bin/bash
#直接寫命令
#輸出當前時間
date
#輸出當前使用者資訊
who#建立變數,變數和等號之間不能有空格,當字串之間沒有空格時可以直接賦值,有空格的要加雙引號
str1=i
str="$str1 love you"
#命令的結果作為變數值,一種是反引號中間寫命令,一種是$(),括號中間寫命令
text1=`date`
text2=$(who)
#輸出當前變數值,echo $加變數名
echo $text1
#如果輸出特殊字元,需要用\轉義
grep命令查詢
bash在當前指令碼出現的位置,-n表示當前行數
#輸出為#!/bin/bash0成功grep bash linux.sh
grep -n bash linux.sh
#輸出為1:#!/bin/bash
127 沒有找到命令
1 位置錯誤
126 命令不可執行
if else語句
格式 只有if命令的退出狀態碼為0才會執行then部分
if 命令例子then
命令 fi
tesure=ladytest 命令,如果條件成立,test命令以狀態0退出,if條件成立,不成立以非0退出#查詢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命令的簡寫為[ 條件 ]注意條件與中括號之間的空格
#!/bin/bashtest數值的比較if [ 10 -eq 10]
then
echo 「相等」
else
echo 「不相等」
fi
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/bashfor迴圈tes=good
case $tes in
good)
echo 「hi」;;
*) echo 「jjj」;;
esac
格式
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」while 迴圈ifs=$- -
for item in $list
doecho $item
done
#輸出為win hhh sfsf fsdf
格式
while test命令或者【】例子do 命令
done
#!/bin/basha=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注 方括號中的...