教你shell中的迴圈語句與函式

2021-10-10 04:20:54 字數 2307 閱讀 1672

1、建立列表使用者並設定初始密碼123456

#!/bin/bash

ulist=$(cat /root/users.txt)

for uname in $ulist

doif [ $uname==`grep $uname /etc/passwd | awk -f: ''` ]

then  echo "姓名重複"

fiuseradd $uname

echo 123456 | passwd --stdin $uname &> /dev/null

done

2、刪除列表使用者,並備份使用者的檔案

#!/bin/bash

ulist=$(cat /root/users.txt)

for uname in $ulist

doa=`ls -lh /home/$uname | awk -f: ''`

if [ "$a" != "0" ]

then cp -r /home/$uname /root/baseup.txt

fiuserdel -r $uname &> /dev/null

done

3、測試ip的連通性

#!/bin/bash

hlist=$(cat /root/ip.txt)

for ip in $hlist

doping -c 3 -i 0.2 -w 3 $ip &> /dev/null

if [ $? -eq 0 ]

then echo "host $ip is up"

else echo "host $ip is down"

fidone

4、根據給定的列表使用者,給使用者的加班工資加100元

#!/bin/bash

list=$(cat /root/users.txt)

base_money=3000

for uname in $list

domoney=$(expr $base_money + 100)

echo "$uname的工資為:$money"

done

5、根據給定的列表使用者,給使用者的加班工資加100元(位置變數)

#!/bin/bash

base_money=3000

for uname in $1

domoney=$(expr $base_money + 100 \* $2)

echo "$uname的工資為:$money"

done

6、新增20個使用者,名字依次為stu1,stu2……stu20

#!/bin/bash

i=1while [ $i -le 20 ]

douname="stu$i"

if [ `grep $uname /etc/passwd | awk -f: ''` ]

then echo "名字重複"

fiuseradd $uname

echo 123456 | passwd --stdin $uname $> /dev/null

let i++

done

7、批量刪除

#!/bin/bash

i=1while [ $i -le 20 ]

douname="stu$i"

a=`ls -lh /home/$uname | awk -f: ''`

if [ "$a" = "0" ]

then cp -r /home/$uname /root/baskup.txt

fiuserdel -r $uname

let i++

done

8、猜**

#!/bin/bash

price=$(expr $random % 1000)

times=0

echo "商品實際**是0~999,猜猜**是多少?"

while true

doread -p "請輸入你猜測的**:" int

if [ $int -eq $price ]

then echo "恭喜你猜對了,實際**是$price,總共猜了$times 次"

elif [ $int -lt $price ]

then echo "太低了"

else

echo "太高了"

filet times++

done

9、計算1~50的和

#!/bin/bash

i=0;s=0

until [ $i -eq 50 ]

dolet "i=$i+1";let "s=$i+$s"

done

echo "1~50的和是$s"

shell中的條件語句與迴圈語句

首先,說到條件語句,就不得不先說下條件表示式的判斷,那麼shell中的條件表示式都有哪幾種呢,這裡可以分為三種 等於則為真。不相等則為真。z字串 字串長度偽則為真。n字串 字串長度不偽則為真。eq 等於則為真。ne 不等於則為真。gt 大於則為真。ge 大於等於則為真。lt 小於則為真。le 小於等...

shell迴圈語句與函式

讀取不同的變數值,用來逐個執行同乙個組命令 for 變數名 in 取值列表 do 命令序列 done使用for迴圈語句時,需要指定乙個變數以及可能取值的列表,針對每個不同的取值重複執行相同的命令序列,直到變數值用完退出迴圈。在這裡,取值列表 稱為for語句的執行條件,其中包括多個屬性相同的物件需要預...

Shell中的迴圈語句例項

1.for迴圈語句 例項1.1 最基本的for迴圈 bin bash for x in one two three four doecho number x done 注 for 迴圈總是接收 in 語句之後的某種型別的字列表。在本例中,指定了四個英語單詞,但是字列表也可以引用磁碟上的檔案,甚至檔案...