linuxfor跳出循環
⑴ linux Shell:Shell循環語句
摘要: Linux , Shell
Shell中常用循環有 for , while
for循環只能用於 固定次數 的循環,因此不能無限循環和用於一些在後台守護進程一直運行的程序,語法語句如下
也可以寫成一行,用 ; 分隔
取值列表內元素以空格隔開,如果元素帶有空格則用引號包裹起來,例子如下
輸出如下,可見循環到最後退出循環,引用變數依舊是最後一個取值列表元素
一行的寫法
Shell的for循環也可以採用C語言的寫法,注意是 雙括弧 ,用 分號; 間隔
一個簡單例子
while循環語句結合條件測試使用,語法如下
舉一個例子
在循環中使用條件測試實現復雜的邏輯,例如
也可以使用&&,||一行完成,省去if,fi
Shell的continue,break語句和Python一樣,例子如下
break語句下輸出4
continue語句下輸出4 6 7 8 9 10
常見結合使用的循環體有 序列 , 數組 , 命令行傳參 , 文件目錄和文件
序列通過 seq 命令或者 {begin..end..step} 符號進行定義:
結合for循環使用案例
在Shell中使用小括弧 () 定義數組,數組遍歷使用 [@] 符號,防止元素有空格用雙引號包起來,,例子如下
命令行傳參遍歷使用固定符號 $@ ,如果參數中有空格,用雙引號括起來,例子如下
文件遍歷使用 ls 命令,可以指定目錄,以及通配符匹配
一個雙重循環實現,注意 expr表達式中乘號要加轉移符
(2)將某目錄下大小大於閾值的文件移動到另一個文件
遍歷循環一個目錄,使用awk語法獲得文件大小,將100m以上的文件移動到另一個文件夾
(2)指定開始日期和結束日期完成一個跑批任務
指定一個開始時間和結束時間,while從開始日期一直自增到結束日期循環結束,通過 date -d -01-01 1day' +%Y-%m-%d 自增一天
⑵ linux for循環中使用cd命令會break循環嗎
[root@devstack src]# bash a.sh
debug
[root@devstack src]# bash -x a.sh
++ ls
+ for dir in '`ls`'
+ '[' -d a.sh ']'
+ for dir in '`ls`'
+ '[' -d debug ']'
+ echo debug
debug
+ cd debug
+ for dir in '`ls`'
+ '[' -d devstack ']'
+ for dir in '`ls`'
+ '[' -d devstack.tar ']'
+ for dir in '`ls`'
+ '[' -d kernels ']'
[root@devstack src]#
[root@devstack src]# ls
a.sh debug devstack devstack.tar kernels
明白了嗎。 bash -x 可以跟蹤shell 例如說 在debug 目錄裡面 沒有 的devstack kernels 目錄 不存在,在for 裡面第一行就取道了當前目錄的目錄。但是在第一個循環裡面進到目錄裡面了。所以下面的循環會繼續 去匹配 上一級目錄的目錄。你什麼需求?
⑶ Linux怎麼用for循環實現從一到200$
for循環的常見三種用法
(1)Ubuntu系統在6.10版本後默認使用dash環境;
(2)而CentOS系統常見默認使用的是bash環境;
(3)二者存在一定的區別,部分for循環方式在dash環境下不兼容。
⑷ Linux for 命令中看到 i=1;i<=10;i++ , i++是什麼意思啊
i=1;i<=10;i++
第一個賦值 i=1,
第二個循環條件i<=10。
第三個,每執行一輪i+1 ,直到不滿足循環條件i<=10
跳出循環
⑸ linux的for循環的寫法
Linux下使用while…;do done語句來寫循環語句,其實也非常簡單,比如說,我們要寫一個循環5次的命令。
可以這樣來寫:
I=1
While [$I<=5];do
語句…
Done
I=$(($I+1))
其中,I=$(($I+1))說明我們這個循環每次遞增的數為1,也就是在I的基礎上加1,這樣就形成了循環了。
====================================
腳本1:
#!/bin/sh
for loop in 1 2 3 4 5
do
echo $loop
done
腳本2:
#!/bin/sh
for loop in "orange red blue grey"
do
echo $loop
done
有了""就是字元串,只循環一次
第二個循環的循環變數會依次為orange red blue grey中的每一個。
⑹ Linux編程問題 利用for循環將當前目錄下的.c文件移到指定的目錄下,並按文件大小排序,顯示移
解:
dir=/home/hzxyjsj
for f in *.c
do
mv $f $dir
done
ls -S $dir
註:寫法多樣,這只是其中一種寫法。
(6)linuxfor跳出循環擴展閱讀:
for循環小括弧里第一個「;」號前為一個為不參與循環的單次表達式,其可作為某一變數的初始化賦值語句, 用來給循環控制變數賦初值; 也可用來計算其它與for循環無關但先於循環部分處理的一個表達式。
執行的中間循環體可以為一個語句,也可以為多個語句,當中間循環體只有一個語句時,其大括弧{}可以省略,執行完中間循環體後接著執行末尾循環體。
⑺ linux shell腳本:while循環中調用另一個腳本遇到exit為什麼會跳出循環,且繼續執行循環後的程序
exit是在被調用的腳本裡面,肯定會退出被調用的腳本了。如果不想繼續執行while循環後面的程序可以在do後面的條件上加上break
⑻ Linux shell編程 ---- 循環結構
linux
shell編程
----
循環結構1
for循環
1
for循環是linux
Shell中常用的結構,for循環有三種結構;一種是列表for循環,第二種是不帶列表的for循環,第三種是類C風格的for循環。
2
列表for循環
for
variable
in
list
do
statement
done
3
不帶列表for循環
for
variable
do
statement
done
4
類C風格的for循環
for
((
expr1;
expr2;
expr3
))
do
statement
done2
while循環
1
while循環的結構
while
expression
do
statement
done
3
until循環
1
在執行while循環的時候只要expression的退出狀態為0,將一直執行循環體。until命令和while命令類似,但區別是until循環中的expression的退出狀態不為0的時候循環體將會一直執行。
2
until的結構
untile
expression
do
statement
done
4
循環控制符號
1
break語句可以應用在for,while和until循環語句中,用於強行循環,也就是忽略循環體中任何其它語句和循環條件的限制。
2
continue循環控制符應用在for,while和until語句中,用於讓腳本跳過後面的語句,執行下一次的循環。
⑼ linux的for循環語句
for file
in a b c d
do
cp $file /root/linux
done