linux 脚本 for循环,shell脚本中for循环的写法
Linux | shell脚本-条件判断if和循环语句for
上个章节中,我们学习了判断语句和运算语句。在Shell脚本的使用中,条件判断语句经常与if、else、elif、for和while等语句结合使用,以实现对多种情况的高效判断。
条件判断语句如果语句,通常由如下构成:
if条件判断;then
成功执行操作...
fi
举例:结合整数值比较-eq进行主机在线检查。如运行脚本:vim test1.sh,可得到主机在线或离线的确认结果。
条件判断的双分支结构进一步包括:
if条件判断;then
成功操作...
else
失败操作...
fi
如与字符比较-z一起使用的例子,检查服务运行状态,未运行则启动服务的脚本运行test2.sh。
同时存在多个条件判断的多分支结构如:
if条件判断1;then
条件1成立操作...
elif条件判断2;then
条件2成立操作...
else
其他条件不成立时操作...
fi
以奖品分类为例,根据分数确定不同的奖项,输入范围在0-100分内,并包含奖品分类说明。
所有条件均不成立时的特殊情况操作可以在此结构中包含。
Shell循环结构语句分为for、while和until三种。其中,while和for属于“当型循环”,直到型循环。
for循环的语法如下:
for变量名 in变量值列表
do
循环体
done
例如输出1-254之间的所有偶数,计数并输出数量。
循环结构的应用使得Shell脚本的编写更加灵活,具备自动执行特定操作的机制。
预告下一期内容:将深入探讨Shell脚本中的while和until循环结构及case分支结构的使用方法。
要了解更多详细信息,请访问睿江云计算官网链接:e[链接]
Linux Shell中的循环控制语句
在编写Shell脚本时,循环是一种常用的控制结构,用于重复执行一系列命令。在Shell中,主要有三种循环控制语句:for循环,while循环,和until循环。
for循环是最常见的循环控制语句。它可以遍历一个列表中的每个元素,并对每个元素执行一系列命令。例如,遍历一个数字列表或字符串列表,通过默认以空格分隔元素,可以实现此功能。此外,循环遍历数组也非常常见,例如输出从1到10的数字。
while循环会在给定的条件为真时不断执行一系列命令。例如,打印1到5的数字,或者通过循环和read命令遍历文件的每一行。
until循环与while循环相反,它会在给定的条件为假时不断执行一系列命令。同样,可以打印1到5的数字作为示例。
在循环中,有时我们需要提前结束循环或跳过当前迭代。Shell提供了两个命令来实现这些控制:break和continue。例如,使用break命令退出循环,使用continue命令跳过特定迭代。
...并计算和(用linux 系统 shell脚本for语句编写)
【答】程序清单如下:
L0.2 prime.sh
#!/bin/bash
#
# SCRIPT: prime.sh
# AUTHOR: Zhaing&Bo
# DATE: 2010-11-21
# REV: 1.1.A
#
# PLATFORM: Linularis
#
# PURPOSE: Read a number from the console, then print all the primes
# in(1~100). And at the same time calculate the sum of all
# the primes.
#
# set-n# Uncomment to check your syntax, without execution.
## NOTE: Do not forget to put the comment back in or
## the shell script will not execute!
# set-x# Uncomment to debug this shell script(Bash only)
#
##########################################################
########### DEFINE FILES AND VARIABLES HERE##############
##########################################################
num=0#用来暂存用户输入整数
i=0#循环控制变量(控制is_prime函数中的循环次数)
N=0#待测值(is_prime函数形参)
n=0#主函数循环控制变量(is_prime函数实参)
flag=1#素数表示(其中 1表示是,0表示否)
sum=0#用来存储素数之和
##########################################################
############### DEFINE FUNCTIONS HERE####################
##########################################################
#/**
#*函数名称:is_prime()
#*函数功能:测试一个数是否为素数
#*/
function is_prime(){
N=$1
flag=1
for((i=2; i<(N/2+1); i++)){
((N%i))
if [$?-ne 0 ]; then
flag=0; break;
fi
}
}
##########################################################
################ BEGINNING OF MAIN#######################
##########################################################
#输出提示
read-p"Please input a postive integer:" num
#echo-e"\nYour Number is:$num.\n"#将用户输入输出,以便用户确定
echo-e"All the prime from 1 to$num:"
for((n=2; n<=$num; n++)){
is_prime n
if [$flag-eq 1 ]; then
echo-n"$n"
((sum=sum+n))
# echo-e"$n Is prime."
# else
# echo-e"$n is Not prime.\n"
fi
}
#输出所有素数的和(1~num)
echo-e"\nThe SUM of all the primes is:$sum.\n"
# End of script【至此结束】
【说明】
您好!脚本如上所示,我只在Fedora13下进行过测试,没有问题;但,别的Linux平台我不敢保证程序能够正常运行。注意,其中汉语注释在Linux下可能显示乱码,本人不再为此提供技术支持。
另外,这也是我写的第一个脚本。程序可能不是最好的,有什么问题请留言。
【建议】
这类小脚本并不是很难,多查查书,google一下基础概念;自己就能写出来的。