上部:
面向過程:
順序執行
選擇執行: if, case
循環執行: for, while, until
一、for語句
格式:
for 變量 in 列表;do
語句1;
語句2;
...
done
例1、寫一個腳本,添加10個用戶,并讓每個用戶的密碼同用戶名】
代碼如下:
#!/bin/bash
for I in {1..10}; do
useradd user$I;
echo user$I | passwd --stdin user$I
done
例2、寫一個腳本,分別顯示 /tmp/1.dir /tmp/2.dir /tmp/3.dir三個文件的時間戳,并將這三個文件被修改的時間改為201003030303.03
代碼如下:
#!/bin/bash
for Dir in /tmp/1.dir /tmp/2.dir /tmp/3.dir; do
stat $Dir
touch -m -t 201003030303.03 $Dir
stat $Dir
done
bash的變量類型:
本地變量
局部變量
環境變量
位置變量 :$1、$2、$3、$4....
特殊變量:
$?: 用于保存剛剛執行的命令的狀態返回值;
0:成功執行;1-255:失敗,1,2,127
可以使用exit命令在腳本中自定義腳本執行狀態返回值;如果不定義,腳本執行狀態返
回值取決于腳本執行結束前最后執行的那個語句的狀態;
$@, $*: 所有位置參數;
$#: 位置參數的個數;
$0: 腳本名稱
二、if語句
1、單分支if語句:
格式:
if 條件; then
語句1
語句2
...
fi
例3、寫一個腳本,實現如下功能: 如果用戶存在,就說明其存在;
代碼如下:
#!/bin/bash
UserName=user1
if grep "^$UserName/>" /etc/passwd &> /dev/null; then
echo "$UserName exists."
fi
例4、寫一個腳本,實現如下功能:如果設備/dev/sda3已經掛載,就顯示其掛載點;
代碼如下:
#!/bin/bash
Device='/dev/sda3'
if mount | grep "^$Device" &> /dev/null; then
新聞熱點
疑難解答