shell指令碼裡的for迴圈和while迴圈

2021-10-08 02:56:04 字數 1008 閱讀 7538

shell 語言作為類 unix 系統的原生指令碼,有著非常實用的價值。但對於很多剛剛接觸 shell 指令碼的同學來說,搞懂 shell 語言的語法卻是一件非常困難的事情。甚至有人吐槽,或許沒有誰能清楚地說明白 shell 的語法。好了廢話不多說,下面就是for迴圈和while迴圈啦!

for迴圈

shell的for迴圈與c、php等語言不同,同python很類似。下面是語法格式:

for 變數 in 列表

docommand1

command2

…commandn

done

示例:#!/bin/bash/

for value in 1 2 3 4 5

doecho 「the value is $value」

done

the value is 1

the value is 2

the value is 3

the value is 4

the value is 5

順序輸出字串中的字元:

for str in 『this is a string』

doecho $str

done

while迴圈

只要while後面的條件滿足,就一直執行do裡面的**塊。

其格式為:

while command

dostatement(s) to be executed if command is true

done

命令執行完畢,控制返回迴圈頂部,從頭開始直至測試條件為假。

示例:複製**

#!/bin/bash

c=0;

while [ $c -lt 3 ]

doecho 「value c is $c」

c=expr $c + 1

done

複製**

輸出:value c is 0

value c is 1

value c is 2

shell指令碼裡的變數

1 在命令列中和指令碼中,變數定義得格式 name value 左右兩邊不能有空格,否則會當做命令來對待,輸出乙個command not found echo name echo 列印出變數,引用變數使用 name.2 單引號和雙引號 語法 和php中相同 雙引號仍然可以保有變數的內容,但單引號內僅...

shell指令碼裡的引號簡介

一 雙引號 使用雙引號可引用除字元 外的任意字元或字串 例 string hello world echo string print hello world echo string print hello world echo string print hello world echo 2 3 pr...

shell指令碼裡相互呼叫的方法

shell寫指令碼通常可以模組化,也可以功能化,例如test1.sh完成乙個獨立功能,test2.sh也完成乙個獨立的功能,但是需要test1.sh作為前提,因此為了節省執行時間,不是用crontab傻瓜似的等待,我們可以在test1.sh裡呼叫test2.sh執行,效率會更高,這裡僅僅介紹兩種在乙...