1、字符測試
常用的測試字符的命令:
== 、=都表示測試字符相等,格式為【 A = B 】需要注意的是變量與等號之間需要有空格,不然測試的結果不正確示例如下
若字符與等號不加空格,假設變量A=ab B=cd, 比較A B的值是否相等,使用echo $? 查看命令狀態,因為A不等於B 所以命令返回狀態應該為1

!=:”表示測試字符是否等於
> 判斷字符是否大於
<判斷字符是否小於
此外 -n +字符串表示測試指定字符串是否為空,-s + 字符串表示測試字符串是否為不空
for循環以及練習
for循環用法:
for 變量 in 列表;do(若do在下一行前面可不加分號)
循環體(要執行的命令)
done
如何生成列表呢,方法有兩種。
1、使用花括號例如 {1..100} 表示自動展開從1到100
2、使用命令替換 類似於`seq 10` 表示為從1循環到10,
seq命令格式: seq 起始數(可以忽略)步進長數(可以忽略)結束數示例如下,需要注意的是seq有設置步進長數的時候,有時候並不會匹配最后一位。


練習for循環:編寫一個腳本,依次向每一個用戶的前面加hello問好,最后統計共有多少個用戶。
腳本如下: 定義變量總共有多少個用戶: declare -i LINES=` wc -l /etc/passwd | cut -d' ' -f1` 此處在做實驗時-d后面分隔符為空格,未選擇空格為分隔符,導致報錯
使用for循環: for I in `seq 1 $LINES` ;do
echo"hello, `head -n $I /etc/passwd | tail -1 | cut -d: -f1` " 使用head命令取得前n行的用戶,tail -1取得每一次循環最后一個 用戶
done
echo " there have $I user "
實驗結果如下圖:

練習2 : 批量添加10個用戶,user1到user10並且密碼同用戶名,當用戶已經存在時不添加。
腳本如下: for I in {1..10};do
if id user$I ; then
echo " user$I already existed"
else
useradd user$I &> /dev/null
echo "user$I" | passwd --stdin user$I &> /dev/null
echo" user$I add success"
fi
done
下圖是用戶已經存在:

同理利用for循環,也可以批量刪除用戶,下圖為刪除用戶后,添加的用戶。

使用 cat /etc/passwd 看到新添加的用戶。cat

練習三: 批量添加10個用戶,當接受到addd參數時,批量添加10個用戶,當接收到dell 參數時批量刪除用戶,如果用戶已經存在則不添加,如果用戶不存在則不刪除。
腳本截圖如下:

批量添加用戶:

使用 cat /etc/passwd 驗證是否添加用戶

批量刪除用戶:

