linux shell之迴圈語句

2021-10-04 02:53:04 字數 3349 閱讀 8175

- 在日常工作中需要重複執行大量的指令,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,儲存檔案的元資訊,比如檔案建立者,檔案修改時間,建立時間,檔案大小...