婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > bash 編程中循環(huán)語句用法

bash 編程中循環(huán)語句用法

熱門標簽:艾比利外呼系統(tǒng) 杞縣地圖標注app 陜西便宜電銷機器人軟件 昆明電話外呼系統(tǒng)好么 衡水外呼線路解決 免費門店地圖標注注冊入駐 電話機器人每天搜索多少次 海口智能語音電銷機器人好用嗎 外呼系統(tǒng)一天耗費多少流量
1.if 是單分支語句,使用格式如下:
if condition ; then
statement
…..
fi
2.if … else 是雙分支語句,使用格式如下:
if condition ; then
statement
….
else
statement
….
fi
3.if …elif…elif…else 是多分支語句,使用格式如下:
if condition ; then
statement
….
elif condition ; then
statement
…..
elif condition ; then
statement
…..
.
.
.
else
statement
….
fi
4.while 語句是循環(huán)語句,當(dāng)條件滿足的情況下才循環(huán),不滿足則退出循環(huán),使用格式如下:
while condition ; do
statement
…..
done
5.until 語句也是循環(huán)語句,當(dāng)條件不滿足的情況下循環(huán),滿足則不循環(huán),使用格式如下:
until condition ; do
statement
…..
done
6.case 也是循環(huán)語句,使用格式如下:
case $var(變量) ; in
value1)
……

value2)
…..

*)

..
..
..
esac

腳本練習(xí):

1.計算100以內(nèi)所有能被3整除的正整數(shù)的和。
復(fù)制代碼 代碼如下:

#!/bin/bash
declare -i sum=0
for I in {1..100}; do
if [ $[$I%3] -eq 0 ]; then
let sum+=$I
fi
done
echo " the sum is :$sum"

2.計算100以內(nèi)所有奇數(shù)的和以及所有偶數(shù)的和
復(fù)制代碼 代碼如下:

#!/bin/bash
# echo "exercise"
declare -i sum1=0
declare -i sum2=0
for I in {1..100}; do
if [ $[$I%2] -eq 0 ]; then
let sum1+=$I
else
let sum2+=$I
fi
done
echo " the even sum is :$sum1"
echo " the oddnumber sum is :$sum2"

3.判斷/var/log下的文件的類型:
如果是普通文件,則說明其為普通文件;
如果是目錄文件,則說明其為目錄文件;
如果是符號鏈接文件,則說明其為符號鏈接文件;
否則,說明文件類型無法識別;
復(fù)制代碼 代碼如下:

#!/bin/bash
file1=/var/log/*
for file in $file1 ; do
if [ -f $file ]; then
echo "$file is common file"
elif [ -d $file ]; then
echo "$file is directory file"
else
echo "$file is unknow"
fi
done

4.寫一個腳本,分別顯示當(dāng)前系統(tǒng)上所有默認shell為bash的用戶和默認shell為
/sbin/nologin的用戶
并統(tǒng)計各類shell下的用戶總數(shù),顯示結(jié)果形如:bash,3user,they
are:root,redhat,gentoo nologn,2user,they are:bin,ftp
復(fù)制代碼 代碼如下:

#!/bin/bash
file=/etc/passwd
bsh='/bin/bash'
nobsh='/sbin/nologin'
use=`cat $file | cut -d: -f1`
declare -i d1=0
declare -i d2=0
for I in $use ; do
s=`grep "^$I:" $file | cut -d: -f7`
if [ "$s" = $bsh ] ; then
let d1=$d1+1
muser=$I\,$muser
elif [ "$s" = $nobsh ] ; then
let d2=$d2+1
suser=$I\,$suser
fi
done
echo "BASH,$d1 users ,they are:"
echo $muser
echo
echo "NOLOGIN,$d2 users ,they are:"
echo $suser

5.寫一個腳本:
(1)如果不存在,就創(chuàng)建文件/tmp/maintenance;如果存在,就事先刪除
(2)在文件/tmp/maintenance中添加如下內(nèi)容:
172.16.0.6
172.16.0.17
172.16.0.20
(3)測試172.16.0.0/16網(wǎng)絡(luò)內(nèi)的所有主機是否在線,如果在線就顯示其在線,如果此主機
在/tmp/maintenance文件中,就顯示其正處于維護狀態(tài);否則,就顯示其狀態(tài)未知;
復(fù)制代碼 代碼如下:

#!/bin/bash
file=/tmp/maintenace
if [ -e $file ]; then
rm -rf $file > /dev/null
fi
touch $file
cat >> $file EOF
172.16.0.6
172.16.0.17
172.16.0.20
EOF
bnet=172.16
for net in {0..254} ; do
for host in {1..254} ; do
if ping -c1 -W1 $bnet.$net.$host > /dev/null ; then
echo "$bnet.$net.$host is up."
elif grep "$bnet.$net.$host$" $file > /dev/null ;then
echo "$bnet.$net.$host is under maintenance."
else
echo "$bnet.$net.$host state is unknow."
fi
done
done

6寫一個腳本,完成以下功能:
(1)、提示用戶輸入一個用戶名;
(2)、顯示一個菜單給用戶,形如:
U|u show UID
G|g show GID
S|s show SHELL
Q|q quit
(3)、提醒用戶選擇一個選項,并顯示其所選擇的內(nèi)容;如果用戶給的是一個非上述所提示的選項,則提醒用戶給出的選項錯誤,并請其重新選擇后執(zhí)行;
第一種方法:
復(fù)制代碼 代碼如下:

#!/bin/bash
read -p "Enter a user name:" username
! id $username > /dev/null echo " Come on ,the user you input unexit" exit 9
cat EOF
U|u show UID
G|g show GID
S|s show SHELL
Q|q quit
EOF
read -p "Enter your choice:" op
case $op in
U|u)
id -u $username;;
G|g)
id -g $username;;
S|s)
grep "^$username\&;" /etc/passwd | cut -d: -f7;;
Q|q)
exit 8 ;;
*)
echo "input option wrong ,quit"
exit 9

esac

第二種方法:
復(fù)制代碼 代碼如下:

#!/bin/bash
read -p "Enter a user name:" username
! id $username > /dev/null echo "Come on ,you input user notexit" exit 9
cat EOF
U|u show UID
G|g show GID
S|s show SHELL
Q|q quit
EOF
read -p "Enter your option:" op
while true; do
case $op in
U|u)
id -u $username
break

G|g)
id -g $username
break

S|s)
grep "^$username\&;" /etc/passwd | cut -d: -f7
break

Q|q)
exit 7 ;;
*)
read -p "Wrong option,Enter a right option:" op ;;
esac
done

7寫一個腳本:
(1)、判斷一個指定的腳本是否是語法錯誤;如果有錯誤,則提醒用戶鍵入Q或者q無視錯誤并退出,其它任何鍵可以通過vim打開這個指定的腳本;
(2)、如果用戶通過vim打開編輯后保存退出時仍然有錯誤,則重復(fù)第1步中的內(nèi)容;否則,就正常關(guān)閉退出。
第一種方法
復(fù)制代碼 代碼如下:

#!/bin/bash
[ ! -f $1 ] echo "wrong path." exit 2
until bash -n $1 > /dev/null ; do
read -p " Q|q to quit .others to edit:" opt
case $opt in
Q|q)
echo "quit..."
exit 3

*)
vim $1

esac
done

第二種方法:
復(fù)制代碼 代碼如下:

#!/bin/bash
[ ! -f $1 ] echo "wrong path." echo "Quit!" exit 9
until bash -n $1 > /dev/null ; do
read -p " Grammar wrong please enter Q|q to quit .others to edit:" opt
case $opt in
Q|q)
echo "quit..."
exit 3

*)
vim $1
bash -n $1 > /dev/null
val=$?
[ "$val" -ne 0 ] echo "xiu gai bu cheng gong. "

esac
done

第三種方法
復(fù)制代碼 代碼如下:

#!/bin/bash
[ ! -f $1 ] echo "Wrong scripts." exit 4
bash -n $1 > /dev/null
valu=$?
until [ $valu -eq 0 ] ; do
read -p "Q|q to quit ,others to edit:" op
case $op in
Q|q)
echo "Quit."
exit 9

*)
vim $1
bash -n $1 > /dev/null
valu=$?

esac
done

8 寫一個腳本:
查看redhat用戶是否登錄了系統(tǒng),如果登錄了,就通知當(dāng)前腳本執(zhí)行者“redhat
is logged on.”;否則,就睡眠5秒鐘后再次進行測試;直到其登錄為止退出;
第一種方法
復(fù)制代碼 代碼如下:

#!/bin/bash
who | grep "^redhat\&;" > /dev/null
reval=$?
until [ $reval -eq 0 ] ;do
sleep 5
who | grep "^redhat\&;" > /dev/null
reval=$?
done
echo "redhat is logged on."

第二種方法:
復(fù)制代碼 代碼如下:

#!/bin/bash
until who | grep "^redhat\&;" > /dev/null ; do
sleep 5
done
echo "redhat is logged on"

9寫一個腳本:
(1)、向系統(tǒng)中添加20個用戶,名字為linuxer1-linuxer20,密碼分別為其用戶名,要使用while循環(huán);
(2)、要求:在添加每個用戶之前事先判斷用戶是否存在,如果已經(jīng)存在,則不再添加此用戶;
(3)、添加完成后,顯示linuxer1-linuxer20每個用戶名及對應(yīng)的UID號碼和GID號碼,形如 stu1, UID: 1000, GID: 1000
復(fù)制代碼 代碼如下:

#!/bin/bash
declare -i I=1
while [ $I -le 20 ] ; do
l=linuxer$I
let I++
! id $l > /dev/null useradd $l > /dev/null echo "the user:$l" | passwd --stdin $l > /dev/null echo "a dd user $l successfully" || echo " The user $l is exit. "
d=`id -u $l`
g=`id -g $l`
echo " $l ,UID:$d,GID:$g "
done

本文出自 “知識體系” 博客
您可能感興趣的文章:
  • Bash中尖括號的更多使用方法
  • BASH 學(xué)習(xí)筆記小結(jié)
  • Bash Shell字符串操作小結(jié)
  • Shell 編程:Bash空格的那點事
  • linux bash字符串處理大全
  • 一波實用的Bash Shell整理
  • 如何編寫健壯的Bash腳本(經(jīng)驗分享)
  • 深入理解Bash中的尖括號(適合初學(xué)者)

標簽:海口 泰安 西寧 南京 昌都 宿遷 臨滄 營口

巨人網(wǎng)絡(luò)通訊聲明:本文標題《bash 編程中循環(huán)語句用法》,本文關(guān)鍵詞  bash,編程,中,循環(huán),語句,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《bash 編程中循環(huán)語句用法》相關(guān)的同類信息!
  • 本頁收集關(guān)于bash 編程中循環(huán)語句用法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 宜城市| 绥德县| 高唐县| 阳高县| 图们市| 南木林县| 九台市| 庆城县| 吉首市| 德昌县| 潜山县| 金川县| 珲春市| 鄯善县| 桐乡市| 绩溪县| 大田县| 凤山县| 民乐县| 黑河市| 新郑市| 蓬莱市| 巨野县| 明星| 华坪县| 湖南省| 高平市| 大同县| 墨玉县| 林州市| 镇平县| 宽城| 安平县| 汶上县| 陆河县| 金溪县| 顺昌县| 鄂托克旗| 雅江县| 会同县| 大连市|