linux while命令詳解
linux while命令詳解
linux系統(tǒng)下while命令是一個循環(huán)作用的函數(shù)。那么它的具體語法是怎樣的呢?下面由學習啦小編為大家整理了linux while命令的相關知識,希望對大家有幫助。
1.linux while命令簡介
while循環(huán):適用于循環(huán)次數(shù)未知的場景,要有退出條件,否則就成為死循環(huán)。
2.linux while命令格式
語法:
while CONDITION; do
statement
...
done
3.linux while命令功能
while循環(huán):適用于循環(huán)次數(shù)未知的場景,要有退出條件,否則就成為死循環(huán)。
4.linux while命令參數(shù)
while CONDITION; do condition:進入循環(huán)的條件
statement
...
done
while的特殊用法一:while死循環(huán)沒有循環(huán)次數(shù),一直循環(huán),直到給出中斷信號
while :; do
done
while的特殊用法二:從一個文件中讀取每一行賦值給變量
while read LINE; do (read LINE 變量LINE為文件中的每一行進行循環(huán))
done < /PATH/TO/SOMEFILE (輸入重定向需要讀取的文件)
Usage:
vim showuser.sh
#!/bin/bash
#
FILE=/etc/passwd
declare -i I=0
while read LINE; do
[ `echo "$LINE" | awk -F : '{print $NF}'` == '/bin/bash' ] && echo "$LINE" |awk -F : '{print class="main">
linux while命令詳解
[ $I -ge 3 ] && break #break 達到條件就退出循環(huán),continue是達到條件結束本輪循環(huán)執(zhí)行下 一次循環(huán)
done < $FILE
5.linux while命令實例
1、計算100以內(nèi)整數(shù)和
[root@xuelinux test]# vim while100.sh
#!/bin/bash
#program:
#練習使用while循環(huán)計算1到100正整數(shù)的和
#history donggen 2016-11-02-21:21
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash
export PATH
declare -i I=1
declare -i SUM=0
while [ $I -le 100 ]; do
let SUM+=$I
let I++
done
echo "$SUM"
[root@xuelinux test]# chmod +x while100.sh
[root@xuelinux test]# ./while100.sh
5050 從1到100的正整數(shù)和為5050
[root@xuelinux test]#
2、如果提示用戶輸入字符,如果不是quit就把小寫字母全部變成大寫字母,
如果是quit則退出腳本。
[root@xuelinux test]# vim whilequit.sh
#!/bin/bash
#program:
#如果輸入的不是quit則把小寫字母全部換成大寫字母,quit退出循環(huán)
#history donggen 2016-11-02-21:31
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash
export PATH
read -p "Input something:" SCRIPT
while [ $SCRIPT != "quit" ]; do
echo "$SCRIPT" | tr 'a-z' 'A-Z'
read -p "Input something:" SCRIPT
done
[root@xuelinux test]# chmod +x whilequit.sh
[root@xuelinux test]# ./whilequit.sh
Input something:abc
ABC
Input something:eroqe
EROQE
Input something:quit
[root@xuelinux test]#
3、寫一個腳本,查看一個用戶是否登錄,如果沒有登錄繼續(xù)查看,如果登錄則提
示用戶已經(jīng)登錄并退出循環(huán)。
[root@xuelinux test]# vim whiledonggen.sh
#!/bin/bash
#program:
#查看用戶是否登錄
#history donggen 2016-11-02-21:45
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash
export PATH
USERNUM=donggen
who | grep "$USERNUM" &> /dev/null
NUM=$?
while [ $NUM -ne 0 ]; do
echo "$USERNUM is not login."
sleep 3
who | grep "$USERNUM" &> /dev/null
NUM=$?
done
echo "the $USERNUM is login."
[root@xuelinux test]# chmod +x whiledonggen.sh
[root@xuelinux test]# ./whiledonggen.sh
donggen is not login. donggen 用戶沒有登錄時一直提示沒有登錄
donggen is not login.
donggen is not login.
donggen is not login.
the donggen is login. donggen用戶登錄后提示登錄并退出循環(huán)。
[root@xuelinux test]#