目录/Table of Content
大家好,我是一个喜欢研究算法、机械学习和生物计算的小青年,我的CSDN博客是:一骑代码走天涯
如果您喜欢我的笔记,那么请点一下关注、点赞和收藏。如果內容有錯或者有改进的空间,也可以在评论让我知道。😄
Bash 的计数器(counter) 和变量比较
计数器(counter)
在Bash设定计数器和其它语言一样,用等号=
就可以了。declare
是 Bash內建函数,也是可以用的,但详细用法就不在这里多描述了,有需要的可以参考这个网页。
$ counter=0; echo $counter
0
$ declare -i sum=10; echo $sum # -i:附加int特性
10
而要对计数器本身的数字进行运算,有四个方法,效果是一样的。
# 方法 1: 在两个括号直接运算
$ counter=0; ((counter=counter+1)); echo $counter
1
# 方法 2: 在两个括号用 +=, -=等运算
$ counter=0; ((counter-=1)); echo $counter
-1
# 方法 3: 用let方法
$ sum=10; let "sum*=2" ; echo $sum
20
# 方法 4: (()) 或 let 配合 ++, -- 使用
$ sum=10; let "sum++"; ((++sum)); echo $sum
12
$ sum=10; let "sum--"; ((--sum)); echo $sum
8
变量比较
sum=10 # 例子变量
# 等于 (-eq)
$ if [ "$sum" -eq 10 ]; then echo "TRUE"; fi
TRUE
# 不等于 (-ne)
$ if [ "$sum" -ne 0 ]; then echo "TRUE"; fi
TRUE
# 大于等于 (-ge)
$ if [ "$sum" -ge 0 ]; then echo "Greater than or Equal to"; fi
Greater than or Equal to
# 大于 (-gt)
$ if [ "$sum" -gt 0 ]; then echo "Greater Than"; fi
Greater Than
# 小于等于 (-le)
$ if [ "$sum" -le 100 ]; then echo "Less than or Equal to"; fi
Less than or Equal to
# 小于 (-lt)
$ if [ "$sum" -lt 100 ]; then echo "Less Than"; fi
Less Than
While-loop 格式
while-loop使用格式:
while CONDITION; do
…SOMETHING TO DO;
done
例子:
count=0
while [ "$count" -lt 3 ]; do
echo "count: $count"
((count++))
done
#OUTPUT:
# count: 0
# count: 1
# count: 2
For-loop 格式
For-loop使用格式:
For VARIABLE in {ITERABLE}; do
…SOMETHING TO DO;
done
其中有两种方法列出要迭代的物件:
for i in {0..10..5}; do # 用大括号标注 {start..end..step}
for j in apple banana mango; do # 直接列出, 用空格分隔
echo $i $j;
done
done
#OUTPUT:
# 0 apple
# 0 banana
# 0 mango
# 5 apple
# 5 banana
# 5 mango
# 10 apple
# 10 banana
# 10 mango
Until-loop 格式
Until-loop使用格式:
Until CONDITION; do
…SOMETHING TO DO;
done
与While-loop不同在于,Until-loop的condition是终止条件,而非运行条件。
until [ "$count" -gt 3 ]; do
echo "count:$count";
let count+=1;
done
#OUTPUT:
# count:0
# count:1
# count:2
# count:3
迴圈控制 (continue, break, exit 1)
continue
: 直接跳至下一迴圈
break
: 脱离现时的迴圈
for i in {0..5}; do
if [ $i -lt 2 ]; then
continue; # 如果 i < 2, 直接跳至下一迴圈
fi;
if [ $i -eq 4 ]; then
break; # 如果 i == 4, 脱离迴圈
fi;
echo $i; #根据以上条件,只显示2和3
done
#OUTPUT:
# 2
# 3
另外,如果想退出整个bash程序,可以用exit 1
(在terminal上运行会直接关闭视窗)。