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`

阅读剩余
THE END