【小蝸牛無聊之作】
我經常需要用到for循環,自己小結一下它的用法:
方法1:
for 變量 in 常量列表; do 一些命令; done;
(注意:我這裏用“常量列表”來表述不一定準確,希望大家理解即可,
我實在想不出更好的表述了,請大家指教!)
如:for file in `ls`; do echo $file; done;
for i in 1 2 3 4 5; do echo $i; done;
方法2:
for (( 變量初始化; 條件判斷; 變量自變 )); do 一些命令; done;
如:for (( i = 0; i < 10; i++)); do echo $i; done;
for 變量 in 常量列表; do 一些命令; done;
(注意:我這裏用“常量列表”來表述不一定準確,希望大家理解即可,
我實在想不出更好的表述了,請大家指教!)
如:for file in `ls`; do echo $file; done;
for i in 1 2 3 4 5; do echo $i; done;
方法2:
for (( 變量初始化; 條件判斷; 變量自變 )); do 一些命令; done;
如:for (( i = 0; i < 10; i++)); do echo $i; done;
這裏就像使用C語言那樣哦~不過是用兩個括號而已。
這裏舉一個有趣的例子:
這裏舉一個有趣的例子:
#!/bin/bash
# test.sh
# test.sh
MAX=10
for (( i = 0; i < MAX ; i ++ ))
do
echo $i
done
do
echo $i
done
有趣的是,這裏的 MAX 前面沒有 '$',當然,你使用 $MAX 也是可以的。
難道 bash 就那麼寬容嗎?聽說,類似C的這種語法,只有bash獨有哦~
順便提一下,在bash中使用expr進行簡單的數學計算,如下:
MAX=10
for (( i = 0; i < MAX ; i ++ ))
do
echo `expr $i \* $i`
# 或者這樣
# echo $[$i * $i]
done
do
echo `expr $i \* $i`
# 或者這樣
# echo $[$i * $i]
done
注意,這裏需要用 ` ` 括號(一時想不起它叫啥名字)起來表示 expr 是一個命令,前面的 `ls` 也就是取 ls 命令的輸出結果。還有,這裏的'*'要用'\'來轉義,使用 '+' '-' 等算術符則不需要轉移。使用上面註釋掉的第二種方法就不需要轉義。
------------------------------------------------------------------------------------------
趙小蝸牛
QQ: 755721501
在不斷奉獻中謀求生存發展、打造自己的優秀品質,用人性最本質最動人的一面“營銷”自己!