linux bash for in(linux中bash是什么)
...并计算和(用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一下基础概念;自己就能写出来的。
请教大神shell的for in语句中怎么使用多个变量
1、遍历按空格分隔的字符串:
#!/bin/bash
servers="abc123 das 222"
for server in$servers
do
echo$server
done
2、遍历字符串列表、用空格分隔:
#!/bin/bash
for server in a b c
do
echo$server
done
3、遍历参数列表:
#!/bin/bash
for arg in$*
do
echo$arg
done
4、遍历文件目录:
#!/bin/bash
for i in~/*.sh
do
echo$i
cat$i
done
注:$i是整个目录和文件,for in语句也可以与` `和$()配合使用,例如:
#!/bin/bash
for i in$(ls~/*.sh)
do
echo$i
cat$i
done
扩展资料:
LInux shell之(for in)用法总结
一、语法
for变量名 in列表 do程序段(command) done
注意1:是变量名而不是$变量!
注意2:列表可以做文章!
二、应用
第一类:数字性循环-->seq在in后面的应用
#!/bin/bash
#也是产生等差数列-->默认是1
for i in$(seq 1 10)
#产生的是一个字符串,默认IFS是以空格隔开!
do
echo$(expr$i \* 3+ 1);
#主要是复习:expr乘法的特殊用法!-->空格隔开
done
补充:产生[1,10]的自然数-->{}在in后面的应用
total=0
#全局变量for i in{1..100}#".."表示连续,默认也是IFS为空格隔开
do
((total+=i))
doneecho-e"total is:${total}"
#多行注释
<<COMMENRfor i in mysql_{0,1,4,12}sql
#多个文件
do
echo$i
samtools view-c$i
doneCOMMENT
第二类:字符性循环
最原始的
#!/bin/bash
#使用列表for循环显示周一到周日对应的英文-->学习日期的英文
for day in Monday Tuesday Wednesday Thursday Friday Saturday Sunday
do
echo"$day"
done
变量的类型
#!/bin/bash
list="Linux Java C++ Python"
for
i in$list
do
echo-e"Language is${i}"
done
cat
在in后面的应用-->逐行读取文件的内容(默认是IFS),所以不是逐行打印。
#!/bin/bashfor
in$(cat日志颜色.sh)
#注意:pwd当前目录下的文件
do
echo$i
done
第三类:路径查找
ls在in后面的命令是-->读取当前pwd下的文件(广义上)。
#!/bin/bash
for i in `ls`;
#ls可以结合统配符应用
do
echo$i is file name\!;
#注意:\的应用
done
用通配符读取目录(无命令)
for
file in~/*;
#一级目录下的内容-->并不递归显示
do
echo$file is file path \!;
#${file}代表的是文件的全路径
done
通过脚本传参
#!/bin/bash
#回忆1:统计脚本参数的个数echo"argument number are$#"!
#回忆2:参数的内容-->此处可以换成$@来测试!
echo
"the input is$*"
#循环执行
for argument in"$*";
do
echo
"$argument"
done
如何在 Linux 中使用 Bash For 循环
在Linux中,Bash脚本中的for循环是执行重复任务的关键工具,它有多种用途和语法。本文将详细介绍如何在Linux中使用Bash for循环。
for循环的基本语法是遍历一系列值并执行一组命令。下面是一些示例:
对于简单的范围,如1到10,for循环会逐个打印这些数字,如:`for n in{1..10}; do echo$n; done`
范围可以通过指定开始和结束值,如`for n in{1..7}; do echo$n; done`,实现自动迭代。
数组循环允许遍历已定义的数组,如`fruits=("apple""banana""mango") for fruit in fruits; do echo$fruit; done`
C风格的for循环结合变量,如`for i in{1..7}; do echo$((i*2)); done`,用于迭代并处理一系列元素。
for循环还可以配合条件语句,如`for i in{1..7}; do if [$((i% 2))-eq 0 ]; then echo"Even:$i"; else echo"Odd:$i"; fi; done`
使用`continue`语句在满足条件时跳过当前迭代,如`for i in{1..7}; do if [$i-gt 5 ]; then continue; fi; echo$i; done`
`break`语句则在满足条件时立即终止循环,如`for i in{1..7}; do if [$i-eq 3 ]; then break; fi; echo$i; done`