日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux01-BASH的while流程控制41

發布時間:2025/3/19 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux01-BASH的while流程控制41 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


一、循環流程控制

? ?1、循環:while, until, for

? ?2、break: 提前退出循環

? ? ? ?continue:提前結束本輪循環,而進入下一輪循環;

? ?如:計算100以內奇數的和;

#!/bin/bash

#

declare -i I=0

declare -i SUM=0

while [ $I -lt 100 ];do

? ? ? ?let I++

? ? ? ?if [ $[$I%2] -eq 0 ?];then

? ? ? ? ? ? ? ?continue

? ? ? ?fi

? ? ? ? ? ? ? ?SUM=$SUM+$I

done

? ? ? ?echo $SUM

? ?如:1000以內的正整數相加,當和大于5000時退出循環;

#!/bin/bash

#

declare -i SUM=0

for I in {1..1000};do

? ? ? ?let SUM+=$I

? ? ? ?if [ $SUM -gt 5000 ];then

? ? ? ? ? ? ? ?break

? ? ? ?fi

done

? ? ? ?echo "I is $I."

? ? ? ?echo "SUM is $SUM."

? ?3、while的特殊用法

? ? ? ?a)while的特殊用法一:

? ? ? ? ? ?while :;do

? ? ? ? ? ? ? ?STATEMENT

? ? ? ? ? ?done

? ?如:判斷輸入內容是否為文件,當觸發quit時退出;

#!/bin/bash

#

while :;do

? ? ? ?read -p "File path:" FILEPATH

? ? ? ?[ $FILEPATH == 'quit' ] && break

? ? ? ?if [ -e $FILEPATH ];then

? ? ? ? ? ? ? ?echo "$FILEPATH exists."

? ? ? ?else

? ? ? ? ? ? ? ?echo "No$FILEPATH."

? ? ? ?fi

done

echo "Quit."

? ? ? ?b)while的特殊用法二:

? ? ? ? ? ?while read LINE; do

? ? ? ? ? ? ? ?STATEMENT

? ? ? ? ? ?done < /PATH/TO/SOMEFILE

? ?如:/etc/passwd中用戶shell為bash的顯示用戶的用戶名;只顯示前6個用戶;如果ID小于或等于505的則不顯示用戶;

#!/bin/bash

#

FILE=/etc/passwd

let I=0

while read LINE;do

? ? ? ?[ `echo $LINE | awk -F : '{print $3}'` -le 505 ] && continue

? ? ? ?[ `echo $LINE | awk -F : '{print $7}'` ?== '/bin/bash' ] ?&& echo $LINE | awk -F : '{print $1}' && let I++

? ? ? ?[ $I -eq 6 ] && break

done < $FILE

寫一個腳本:

1、判斷一個指定的bash腳本是否有語法錯誤;如果有錯誤,則提醒用戶鍵入Q或者q無視錯誤并退出,其它任何鍵可以通過vim打開這個指定的腳本;

2、如果用戶通過vim打開編輯后保存退出時仍然,則重復第一步中的內容;否則,就正常關閉退出;

參考答案:

#!/bin/bash

#

until bash -n $1 &> /dev/null;do

? ? ? ?read -p "Syntax Error,[Q|q] to quit,Any input for editing:" CHOICE

? ? ? ?case $CHOICE in

? ? ? ?Q|q)

? ? ? ? ? ? ? ?echo "Something wrong,quiting."

? ? ? ? ? ? ? ?exit 5;;

? ? ? ?*)

? ? ? ? ? ? ? ?vim + $1;;

? ? ? ?esac

done

轉載于:https://blog.51cto.com/zkhylt/1410999

總結

以上是生活随笔為你收集整理的Linux01-BASH的while流程控制41的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。