红联Linux门户
Linux帮助

Linux Shell编程之for循环语句、if条件语句

发布时间:2016-09-23 16:07:13来源:linux网站作者:一米阳光213
最近涉及Linux Shell编程,还不太熟悉,对于赋值语句,数值计算,循环语句,变量使用都不太熟悉。我不打算一个一个的说明知识点,我打算用最多3个例子说明所有的这些知识点。
 
Example 1:
#!/bin/bash  
# calculate sum = 1^2 + 2^2 + 3^2 +...+ 100^2
sum=0;  
#tmp is temporary variable  
tmp=0;  
# for loops  
i=1;  
for((i=1;i<=100;i++))  
do  
let "tmp=$i*$i";  
let "sum+=$tmp";  
done
echo "Result:$sum";  
输出结果:
Result:338350
 
Example2:
#!/bin/bash 
# 先执行 ls *.txt , 显示当前目录下所有的txt文件,然后将结果赋值给 files 变量,注意,shell自定义变量的赋值不需要 $files ,直接用  
files=`ls *.txt`;  
# for loops  
#遍历所有的 txt 文件名  
for file in $files  
do  
echo "File name:$file";  
echo "File content:`cat $file`";  
done
 
第三个例子融合了 if条件语句 和 for循环语句。
 
Example 3:
#!/bin/bash    
prefix="./"    
#FOR LOOPS  
i=1  
directory=4  
for((i=1;i<=200;i++))  
do  
if [ $i -lt 10 ]; then  
directory=${prefix}00$i;  
elif [ $i -lt 100 ]; then  
directory=${prefix}0$i;  
else  
directory=${prefix}$i;  
fi   
echo $directory;  
done
 
补充说明:
if 与[ 之间必须有空格
[ ]与判断条件之间也必须有空格
]与; 之间不能有空格
int1 -eq int2    两数相等为真
int1 -ne int2    两数不等为真
int1 -gt int2    int1大于int2为真
int1 -ge int2    int1大于等于int2为真
int1 -lt int2    int1小于int2为真
int1 -le int2    int1小于等于int2为真
 
本文永久更新地址:http://www.linuxdiyf.com/linux/24418.html