- 在日常工作中需要重複執行大量的指令,shell提供了for,while,until,select迴圈語句以實現特定環境下特定指令的反覆利用
- 每次執行命令序列時都要對條件進行過濾,滿足條件才可執行
#語法格式一:
for 變數 in 值1 值2 ……值n
do命令序列
done
#變數通過賦值in裡面的值,多個賦值用空格隔開
#語法格式2:
for ((初始變數值;結束迴圈條件;運算))
do命令序列
done
#給多個客戶批量傳送郵件
mail -s 」標題「 [email protected] < /neirong
#!/bin/bash
domain=163.com
for mail_user in dana dahuang dalv
domail -s "log" $mail_user@$domain < /var/log/messages
echo "$mail_user 郵件傳送成功"
done
#利用for迴圈列印九九乘法表
#!/bin/bash
for i in
do for ((j=1;j<=i;j++))
doprintf "%-8s" $j*$i=$((j*i))
done
echo
done
語法格式一:
while [條件]
do命令序列
done
語法格式2
while read -r line
do命令序列
done < file
#通過read命令每次讀取一行檔案,檔案內容有多少行,while迴圈多少次
#批量新增20個使用者,使用者名為 tln,n為1-20編號
[root@server0 programe]# cat add_user.sh
#!/bin/bash
# add twenty users with while
num=1
while [ $num -le 20 ]
do #userdel -r tl$ #刪除使用者時,注意新增-r選項
useradd tl$
echo tl$「建立成功」
id=`id tl$`
echo tl$"使用者的uid號為"$
num=$((num+1))
done
[root@server0 programe]#
#列印網絡卡配置檔案
[root@server0 programe]# cat read_nic.sh
#!/bin/bash
#read nic file
file=/etc/sysconfig/network-scripts/ifcfg-eno16777728
while read -r line
doecho $line
done < $file
[root@server0 programe]#
#無限迴圈選單,根據使用者選擇實現不同的選單功能,最後退出指令碼
[root@server0 programe]# cat new_menu.sh
#!/bin/bash
while true #無限迴圈
doclear
echo "…………………………………………………………………………………………"
echo "1.display cpu info:"
echo "2.display system load:"
echo "3.display mem and swap info:"
echo "4.display filesytem mount info:"
echo "5.exit program"
echo "…………………………………………………………………………………………"
read -p "plese select your iterm(1-5):" u_select
case $u_select in
1)echo $(cat /proc/cpuinfo)
read -p "plese enter to continue:"
;;2)
echo $(uptime)
read -p "plese enter to continue:"
;;3)
echo $(free)
read -p "plese enter to continue:"
;;
4)echo $(df -ht)
read -p "plese enter to continue:"
;;5)
exit 0
;;*)
read -p "plese select 1-5,press enter to continue:"
esac
done
[root@server0 programe]#
語法格式
until [條件]
do命令序列
done
#該語句根據條件判斷迴圈是否繼續,until代表的是知道滿足條件時迴圈結束
#批量刪除使用者
[root@server0 programe]# cat del_user.sh
#!/bin/bash
#delete user
num=20
until [ $num -eq 0 ]
do userdel -r tl$
echo "user tl$ delete ok!"
num=$((num-1))
done
[root@server0 programe]#
select用來生成選單工具
select迴圈與for迴圈格式相同
#select生成籍貫提問選單,並通過echo回顯
[root@server0 programe]# cat select_p.sh
#!/bin/bash
echo "where are you from?"
select var in 'bj' 'cd' 'dh' 'cq' 'tj' 'lz' 'ny'
dobreak
done
echo "you are from $var"
[root@server0 programe]#
linux shell之控制語句
shell支援的控制語句有break,continue,exit,shiftshift的作用是將位置引數引數左移一位,沒執行一次shift,2將變為 1,依次類推 root server0 programe chmod u x shift sh root server0 programe shift...
Linux Shell(二) 分支語句,迴圈語句
在linux的shell中if 語句通過關係運算子判斷表示式的真假來決定執行哪個分支 if else if expression then fi如果expression返回true,then後邊的語句將會被執行 如果返回false,不會執行任何語句。最後必須以fi來結尾閉合if,fi就是if倒過來拼...
linux Shell指令碼之測試語句
在shell指令碼中要經常做各種測試,測試語句的格式 1 test 測試表示式 2 測試表示式 3 測試表示式 三種的區別,在第三種中可以進行萬用字元的匹配,而且 操作符也可以正常的存在中,但是不能存在中。檔案測試操作符 inode,儲存檔案的元資訊,比如檔案建立者,檔案修改時間,建立時間,檔案大小...