for
依次訪問列表裡的元素。
由空格或回車分隔的串就是列表。
for var in 列表 ; do
done
列表的生成方式
for練習
1,分別求100以內所有偶數之和,所有奇數之和
#!/bin/bash
declare -i sum1=0
declare -i sum2=0
for var in ; do
if [ $[var % 2] -eq 0 ]; then
sum1=$[$sum1+$var]
else
sum2=$[$sum2+$var]
fidone
echo $sum1,$sum2
2,計算當前系統上的所有使用者的id之和
#!/bin/bash
declare -i sum=0
for var in `cat /etc/passwd | cut -d: -f3`; do
sum=$[$sum+$var]
done
echo $sum
3,引數是乙個目錄,計算此目錄下所有文字檔案的行數之和,並有多少文字檔案
#!/bin/bash
declare -i sum=0
declare -i lines=0
#在引數1後面加了/*,也就是取得給定目錄下的所有檔案
for var in $1/*; do
#file命令的返回值,如果是文字檔案,則返回值裡有字串ascii
#如果是可執行檔案,則返回值裡有字串elf
if [[ `file $var` =~ ascii ]]; then
sum=$[$sum+1]
#wc -l得到文字檔案的行數,使用了重定向
lines=$[$lines+$[`wc -l < $var`]]
fidone
echo "ascii lines is: $lines"
echo "acsii file's number is $sum"
emacs 生成for**塊的快捷鍵:c-c c-f
特殊用法:for ((i=0;i<=100;i++)); do
#!/bin/bash
#declare -i sum=0
for ((i=0;i<=100;i++)); do
let sum+=$i
done
echo $sum
while
語法:條件為真則進入迴圈體。
while condition; do
done
例子:求1到100的整數之和。
#!/bin/bash
declare -i sum=0
declare -i i=1
# -le是小於等於
while [ $i -le 100 ]; do
let sum+=$i
let i++
done
echo $sum
emacs 生成while**塊的快捷鍵:c-c c-w
特殊用法:讀取檔案的每一行
while read var; do
done < /path/from/file
例子:找出id號為偶數的使用者,顯示其使用者名稱,id和預設shell
#!/bin/bash
#while read lines ;do
username=`echo $lines | cut -d: -f1`
userid=`echo $lines | cut -d: -f3`
usershell=`echo $lines | cut -d: -f7`
if [ $[$userid % 2] -eq 0 ]; then
echo "userid:$userid,username:$username, shell:$usershell"
fidone < /etc/passwd
until
語法:條件為假則進入迴圈體。
until condition; do
done
例子:求1到100的整數之和。
#!/bin/bash
declare -i sum=0
declare -i i=1
until [ $i -gt 100 ]; do
let sum+=$i
let i++
done
echo $sum
迴圈控制
emacs 生成while**塊的快捷鍵:c-c c-u
練習:分別使用for,while,until實現
1,分別求100以內所以偶數之和,100以內所以奇數之和
2,建立10個使用者,user101~user110,密碼同使用者名稱
3,每隔2秒檢測ys使用者是否登入了,如果發現其登入了,則退出迴圈。
#!/bin/bash
#while [ true ]; do
if `who | grep ays &> /dev/null`; then
break
fisleep 2
done
echo `date +"%f %t"` ays logged on >> /tmp/userlogon.log
檢視/tmp/userlogon.log
Bash迴圈結構
endif endif endif forarginlist do done 有限迴圈,次數取決於 list 元素的個數,內容取決於 list 元素的值 while do done 條件迴圈,當條件為真時,執行一次迴圈 until do done 條件迴圈,當條件為假時,才執行一次迴圈 casear...
for迴圈寫法高階
1 常用寫法 for var i 0 i console.log i console.log arr i 每次都需要讀取一次arr.length,進行判斷 2 for var i 0,len arr.length i console.log i console.log arr i 變數定義完整,不用...
for迴圈寫法總結
for迴圈寫法總結 關於shell中的for迴圈用法很多,感覺很全面,所以就轉過來研究研究,嘿嘿.1 for i 1 i 10 i root fox for i 1 i 3 i do echo i 4 done48 2 在shell中常用的是 for i in seq 10 root fox for...