linux字符測試以及for循環


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 驗證是否添加用戶

 

批量刪除用戶:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM