LinuxCommandLine -- [腳本 - 循環(huán)]

while

  • continue
  • break

語法

while [ condition ]; do
    commands
done

例子

# timer.sh 倒計時
#-----------------
#!/bin/bash

read -p "Enter an integer: " num


while (( num >= 0 )); do
    clear
    echo "Counter: $num"
    num=$((num - 1))
    sleep 1
done

clear

until

語法

until [ condition ]; do
    commands
done

例子

#!/bin/bash

read -p "Enter an integer: " num

until (( num < 0 )); do
    clear
    echo "Timer: $num"
    num=$((num - 1))
    sleep 1
done

clear

循環(huán)和重定向

重定向 stdin

$ cat data.txt
0 0
2 6
1 5
5 1
4 9
2 5
2 9
3 8
6 3
6 1

$ ./multi.sh
0 x 0 = 0
2 x 6 = 12
1 x 5 = 5
5 x 1 = 5
4 x 9 = 36
2 x 5 = 10
2 x 9 = 18
3 x 8 = 24
6 x 3 = 18
6 x 1 = 6

#multi.sh
#-------------
#!/bin/bash

while read num1 num2; do
    printf "$num1 x $num2 = %s\n" $(($num1 * $num2))
done < data.txt

管道

$ ./file_size.sh
Path: .
total 1.8M

admin.txt                  4.0K
counter.sh                 4.0K
data.txt                   4.0K
django_projects.tar.gz     1.7M
file_size.sh               4.0K
multi.sh                   4.0K
nginx.tar.gz               8.0K
ta_1.txt                   4.0K
task_1.txt                 4.0K
task_2.txt                 4.0K
test                       0
until_counter.sh           4.0K

#!/bin/bash

read -p "Path: " path

ls -sh $path | while read size filename; do
    if [[ $size =~ total ]]; then
        printf "$size $filename\n\n"
        continue
    fi

    printf "%-26s %s\n" $filename $size
done

for

第一種格式

$ for i in $(seq 5); do echo $i; done
1
2
3
4
5

$ for i in {1..5}; do echo $i; done
1
2
3
4
5

第二種格式

$ for ((i=1; i <=5 ; i++)); do echo $i; done
1
2
3
4
5

如果沒有文件匹配走哺,會直接顯示通配符

$ ls
file_a  file_b  file_c

$ for file in file_*; do echo $file; done
file_a
file_b
file_c

# 如果沒有文件匹配伞访,會直接顯示通配符
$ for file in dir_*; do echo $file; done
dir_*

# 加一個 if 檢查
for file in dir_*; do
  if [ -e "$file" ]; then
    echo $file
  fi
done

打印文件最長的行

$ cat  ./longest-line.sh
#!/bin/bash

read -e -p "File: " file

if [ -e "$file" ]; then
    longest_line=""
    size=0

    while read line; do
       line_size=$(echo "$line" | wc -c)
        if ((line_size > size)); then
            longest_line="$line"
            size="$line_size"
        fi
    done < $file


    printf "longest line: %s\n" "$longest_line"
    printf "size: %s charater(s)\n" "$size"
else
    echo "ERROR: No sush file - $file" >&2
    exit 1
fi
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末载弄,一起剝皮案震驚了整個濱河市颜说,隨后出現(xiàn)的幾起案子遇革,更是在濱河造成了極大的恐慌铣除,老刑警劉巖阱高,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異被因,居然都是意外死亡卿拴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門梨与,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堕花,“玉大人,你說我怎么就攤上這事粥鞋≡低欤” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵呻粹,是天一觀的道長壕曼。 經(jīng)常有香客問我,道長等浊,這世上最難降的妖魔是什么腮郊? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮筹燕,結(jié)果婚禮上轧飞,老公的妹妹穿的比我還像新娘衅鹿。我一直安慰自己,他們只是感情好过咬,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布塘安。 她就那樣靜靜地躺著,像睡著了一般援奢。 火紅的嫁衣襯著肌膚如雪兼犯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天集漾,我揣著相機與錄音切黔,去河邊找鬼。 笑死具篇,一個胖子當著我的面吹牛纬霞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播驱显,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼诗芜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了埃疫?” 一聲冷哼從身側(cè)響起伏恐,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎栓霜,沒想到半個月后翠桦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡胳蛮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年销凑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仅炊。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡斗幼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抚垄,到底是詐尸還是另有隱情蜕窿,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布督勺,位于F島的核電站渠羞,受9級特大地震影響斤贰,放射性物質(zhì)發(fā)生泄漏智哀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一荧恍、第九天 我趴在偏房一處隱蔽的房頂上張望瓷叫。 院中可真熱鬧屯吊,春花似錦、人聲如沸摹菠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽次氨。三九已至蔽介,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間煮寡,已是汗流浹背虹蓄。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留幸撕,地道東北人薇组。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像坐儿,于是被迫代替她去往敵國和親律胀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,408評論 0 5
  • .bat腳本基本命令語法 目錄 批處理的常見命令(未列舉的命令還比較多貌矿,請查閱幫助信息) 1炭菌、REM 和 :: 2...
    慶慶慶慶慶閱讀 8,114評論 1 19
  • 基礎(chǔ) 頭文件 #!/bin/bash 或者#!/bin/sh #!約定的標記,如IOS的Import 執(zhí)行文件時需...
    ZMJun閱讀 1,234評論 1 2
  • bash學習 參考 Linux bash總結(jié)(一) 基礎(chǔ)部分(適合初學者學習和非初學者參考)Linux 入門公開課...
    cndaqiang閱讀 774評論 0 1
  • 在小S的名氣從臺灣傳播到大陸的過程中逛漫,有一個絕不能被忽視的浙商娃兽,就是十月媽咪的創(chuàng)始人趙浦。作為當今中國最活躍最會賺...
    i代言官方閱讀 269評論 0 1