Linux Shell for循环写法总结

关于shell中的for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿...

1、 for((i=1;i<=10;i++));do echo $(expr $i \* 4);done

2、在shell中常用的是 for i in $(seq 10)

3、for i in `ls`

4、for i in ${arr[@]}

5、for i in $* ; do

6、for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do

7、for i in f1 f2 f3 ;do

8、for i in *.txt

9、for i in $(ls *.txt)

for in语句与` `和$( )合用,利用` `或$( )的将多行合为一行的缺陷,实际是合为一个字符串数组

============ -_- ==============for num in $(seq 1 100)

10、LIST="rootfs usr data data2"

for d in $LIST; do

用for in语句自动对字符串按空格遍历的特性,对多个目录遍历

11、for i in {1..10}

12、for i in stringchar {1..10}

13、awk 'BEGIN{for(i=1; i<=10; i++) print i}'

注意:AWK中的for循环写法和C语言一样的

===============================================================

01.#/bin/bash

02.# author: 周海汉

03.# date :2010.3.25

04.# /ablo_zhou

05.arr=("a" "b" "c")

06.echo "arr is (${arr[@]})"

07.echo "item in array:"

08.for i in ${arr[@]}

09.do

10. echo "$i"

11.done

12.echo "参数,\$*表示脚本输入的所有参数:"

13.for i in $* ; do

14.echo $i

15.done

16.echo

17.echo '处理文件 /proc/sys/net/ipv4/conf/*/accept_redirects:'

18.for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do

19.echo $File

20.done

21.echo "直接指定循环内容"

22.for i in f1 f2 f3 ;do

23.echo $i

24.done

25.echo

26.echo "C 语法for 循环:"

27.for (( i=0; i<10; i++)); do

28.echo $i

29.done

---------------------------------------------------------------------------------------------------------

shell中for循环用法

shell语法好麻烦的,一个循环都弄了一会 ,找了几个不同的方法来实现输出1-100间可以被3整除的数

1.用(())

#!/bin/bash

clear

for((i=1;i<100;i++))

for

do

if((i%3==0))

then

echo $i

continue fi

done

2.使用`seq 100`

#!/bin/bash

clear

for i in `seq 100`

do

if((i%3==0))

then

echo $i

continue

fi

done

3.使用while

#!/bin/bash

clear

i=1

while(($i<100))

do

if(($i%3==0))

then

echo $i

fi

i=$(($i+1))

done

--------------------------------------------------------------------------------------------------------

在shell用for循环做数字递增的时候发现问题,特列出shell下for循环的几种方法:

1.

for i in `seq 1 1000000`;do

echo $i

done

用seq 1 10000000做递增,之前用这种方法的时候没遇到问题,因为之前的i根本就没用到百万(1000000),因为项目需要我这个数字远大于百万,发现用seq 数值到 1000000时转换为1e+06,根本无法作为数字进行其他运算,或者将$i有效、正确的取用,遂求其他方法解决,如下

2.

for((i=1;i<10000000;i++));do

echo $i

done

3.

i=1

while(($i<10000000));do

echo $i

i=`expr $i + 1`

done

因为本方法调用expr故运行速度会比第1,第2种慢不少不过可稍作改进,将i=`expr $i

+

1`改为i=$(($i+1))即可稍作速度的提升,不过具体得看相应shell环境是否支持

4.

for i in {1..10000000;do

echo $i

done

其实选用哪种方法具体还是得由相应的shell环境的支持,达到预期的效果,再考虑速度方面的问题。

合集下载

linux bash 写法

linux bash 写法

linux bash 写法

Linux Bash写法

1. 概述

Linux Bash是一种命令行工具,用于在Linux操作系统下执行各种命令和脚本。本文将介绍一些常见的Linux Bash写法,包括变量定义、条件判断、循环语句以及函数定义等。

2. 变量定义

在Bash中,可以使用等号来定义变量,例如:

```bash

name="John"

age=25

```

也可以使用读取命令的方式定义变量:

```bash

read -p "请输入您的姓名:" name

echo "您的姓名是:$name"

```

使用$符号可以获取变量的值,例如: ```bash

echo "姓名:$name,年龄:$age"

```

3. 条件判断

在Bash中,可以使用if语句进行条件判断,例如:

```bash

if [ $age -gt 18 ]; then

echo "成年人"

else

echo "未成年人"

fi

```

在if语句中,可以使用-eq、-ne、-lt、-le、-gt、-ge等运算符进行数值比较,也可以使用=、!=、-z、-n等运算符进行字符串比较。

4. 循环语句

Bash提供了多种循环语句,包括for、while和until等。

4.1 for循环

for循环用于遍历列表或者数字范围,例如: ```bash

for fruit in apple orange banana

do

echo "水果:$fruit"

done

```

也可以使用seq命令来生成数字范围:

```bash

for i in $(seq 1 5)

do

echo "数字:$i"

done

```

4.2 while循环

while循环用于在条件满足时执行循环体,例如:

```bash

count=1

while [ $count -le 5 ]

do echo "计数:$count"

linux foreach用法

linux foreach用法

linux foreach用法

在Linu某中,`foreach`是一个非常有用的命令,它用于循环处理一组文件或一系列数据。它的用法比较灵活,可以根据具体需求进行调整。

`foreach`命令的基本语法如下:

```

foreach variable (list)

end

```

下面将详细介绍`foreach`命令的用法。

1.对文件进行循环操作:

```

foreach file (file1.t某t file2.t某t file3.t某t)

end

```

2.对目录中的文件进行循环操作:

```

foreach file (`ls directory/某.t某t`)

end

``` 3.对数据列表进行循环操作:

```

foreach item (item1 item2 item3)

end

```

4.在循环中使用变量:

```

foreach file (file1 file2 file3)

echo "Processing file: $file"

end

```

在上述命令中,`$file`是一个变量,表示当前迭代的文件名。`echo`命令会输出当前迭代的文件名。

5. 利用`foreach`处理命令输出的数据:

```

echo $line

end

```

6.指定循环次数: ```

set n = 3

foreach i (`seq 1 $n`)

echo "Iteration $i"

end

```

在上述命令中,使用`seq`命令生成一个从1到`$n`的序列,`$i`表示当前迭代的数值。

总结:

`foreach`命令可以用于对文件、目录和数据列表进行循环操作,可以处理命令输出的数据,还可以利用变量进行动态调整。它在Linu某环境中是一个非常有用的命令,能够简化循环处理的操作,提高工作效率。

Shell脚本技巧

Shell脚本技巧

Shell脚本技巧

1.test测试命令

test命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试,其测试符和相应的功能分别如下:

(1)数值测试:

-eq:等于则为真

-ne:不等于则为真

-gt:大于则为真

-ge:大于等于则为真

-lt:小于则为真

-le:小于等于则为真

(2)字符串测试:

=:等于则为真

!=:不相等则为真

-z 字符串:字符串长度伪则为真

-n 字符串:字符串长度不伪则为真

(3)文件测试:

-e 文件名:如果文件存在则为真

-r 文件名:如果文件存在且可读则为真

-w 文件名:如果文件存在且可写则为真

-x 文件名:如果文件存在且可执行则为真

-s 文件名:如果文件存在且至少有一个字符则为真

-d 文件名:如果文件存在且为目录则为真

-f 文件名:如果文件存在且为普通文件则为真

-c 文件名:如果文件存在且为字符型特殊文件则为真

-b 文件名:如果文件存在且为块特殊文件则为真

另外,Linux还提供了与(“!”)、或(“-o)、非(“-a”)三个逻辑操作符用于将测试条件连接起来,其优先级为:“!”最高,“-a”次之,“-o”最低。同时,bash也能完成简单的算术运算,格式如下:

$[expression]

例如:var1=2

var2=$[var1*10+1]

则:var2的值为21。

2.if条件语句

if [ -x /sbin/quotaon ]; then

echo "Turning on Quota for root filesystem"

/sbin/quotaon /

elif [ -x /sbin/quotaon ]; then /usr/bin/bash

else

echo "ok"

fi

3.for 循环

#!/bin/sh

WORD="a b c d e f g h i j l m n o p q r s t u v w x y z"

Shell脚本编程详解-吐血共享

Shell脚本编程详解-吐血共享

第12章 Shell脚本编程

 Shell命令行的运行

 编写、修改权限和执行Shell程序的步骤

 在Shell程序中使用参数和变量

 表达式比较、循环结构语句和条件结构语句

 在Shell程序中使用函数和调用其他Shell程序

12-1 Shell命令行书写规则

 Shell命令行的书写规则

对Shell命令行基本功能的理解有助于编写更好的Shell程序,在执行Shell命令时多个命令可以在一个命令行上运行,但此时要使用分号(;)分隔命令,例如:

[root@localhost root]# ls a* -l;free;df

长Shell命令行可以使用反斜线字符(\)在命令行上扩充,例如:

[root@localhost root]# echo “this is \

>long command”

This is long command

注意:

“>”符号是自动产生的,而不是输入的。

12-2

编写/修改权限及执行Shell程序的步骤

 编写Shell程序

 执行Shell程序

Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂。Shell程序是指放在一个文件中的一系列Linux命令和实用程序。在执行的时候,通过Linux操作系统一个接一个地解释和执行每条命令。首先,来编写第一个Shell程序,从中学习Shell程序的编写、修改权限、执行过程。 12-2-1 编辑Shell程序

编辑一个内容如下的源程序,保存文件名为date,可将其存放在目录/bin下。

[root@localhost bin]#vi date

#! /bin/sh

echo “Mr.$USER,Today is:”

echo &date “+%B%d%A”

echo “Wish you a lucky day !”

注意:

#! /bin/sh通知采用Bash解释。如果在echo语句中执行Shell命令date,则需要在date命令前加符号“&”,其中%B%d%A为输入格式控制符。

Linux之BASH和SHELL学习总结

Linux之BASH和SHELL学习总结

Bourne Again SHell (简称 bash)

功能:

1、命令编修能力 .bash_history文件

2、命令与档案补全能力 Tab键

[Tab] 接在一串指令的第一个字的后面,则为命令补全;

[Tab] 接在一串指令的第二个字以后时,则为『档案补齐』!

3、命令别名设定,指令: alias ---alias lm='ls -al',在.bash_profile文件里

4、工作控制、前景背景控制: (job control, foreground, background)-----------------------???????????不懂

5、程序化脚本: (shell scripts)

6、通配符(Wildcard)

bash内建命令 type type [-tpa] name,产看命令是否是bash内建命令,还是外部命令。

命令多行输入 反斜杠'\' 然后紧接回车。

变量取用 echo $variable

变量设定规则

1、等号连接,等号两边没有空格;

2、变量名只能是字母和数字,变量名开头不能为数字;

3、发量内容若有空格符可使用双引号『"』或单引号『'』将发量内容结合起来,但

双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示: 『var="lang is $LANG"』则『echo $var』可得『lang is en_US』 单引号内的特殊字符则仅为一般字符 (纯文本),如下所示: 『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』;

4.可用跳脱字符『 \ 』将特殊符号(如 [Enter], $, \, 空格符, '等)变成一般字符;

5、在一串指令中,还需要藉由其他的指令提供的信息,可以使用反单引号『`指令`』或 『$(指令)』。

linux shell 运算符

linux shell 运算符

- 1 - linux shell 运算符

Linuxshell运算符是在shell命令行界面下进行数学运算的工具。它可以用来进行简单的数学计算,比如加减乘除、比较大小和逻辑运算等,为用户提供了方便和快捷的计算方式。本文将会介绍几个常用的 Linux shell 运算符。

1. 基本运算符

Linux shell 运算符中最基本的运算符是加减乘除等数学运算符。在命令行界面下输入数学表达式,例如 3+2 或 5*6,使用 echo

命令输出结果即可。例如:

$ echo $((3+2))

5

$ echo $((5*6))

30

其中,双括号内的表达式会被 shell 解释器解析并计算出结果,然后 echo 命令会输出计算结果。

2. 比较运算符

另一种常见的 Linux shell 运算符是比较运算符。比较运算符可以用来比较两个数的大小关系,判断它们是否相等等。常见的比较运算符有:

- -eq:等于

- -ne:不等于

- -gt:大于 - 2 - - -lt:小于

- -ge:大于等于

- -le:小于等于

这些运算符也可以用在 if 语句中,判断某个条件是否成立。例如:

if [ $a -eq $b ]

then

echo 'a 等于 b'

fi

3. 逻辑运算符

逻辑运算符在 Linux shell 中也很重要。它们可以用来组合多个条件,判断复杂的逻辑关系。常见的逻辑运算符有:

- !:逻辑非

- -o:逻辑或

- -a:逻辑与

例如:

if [ ! $a -eq $b -o $a -lt $b ]

then

echo 'a 不等于 b 或者 a 小于 b'

批处理命令中for循环基本用法

批处理命令行中

for

循环基本用法

for

循环是在办公自动化中非常实用的语句之一,本节讨论

DOS

语言中

for

循环的

各种模式:如

/r

/d

/l

/f

等,以及各种参数:如

tokens

delims

usebackq

等的基

本用法。我们须要根据实际情况选择不同的模式和参数来配置

for

循环以达到我们的目

的。

1

、【

for

语句的常规用法】

形式

1

for %%i in (

字符串集合

/

数字列表

/…) do

命令语句

@echo off

for %%i in (aa,bb,cc) do echo %%i

pause

结果为:

aa

bb

cc

注:这里如果用点进行分割,字符串会作为一个整体输出

如果用逗号分割,则会一次一个单次进行打印。

判断某个磁盘是否存在,如果盘符存在,则输出它:

@echo off

echo

存在有驱动器:

for %%i in (a,b,c,d,e,f,g) if exist %%i: echo %%i

pause

显示当前目录下的

文件名称

(非文件夹,

文件夹将不会被列出

):

@echo off

for %%i in (*.*) do echo "%%i"

pause

仅显示当前目录下的

txt

文件名称(

通配符

*.txt

的用法):

@echo off

for %%i in (*.txt) do echo "%%i"

pause 把

txt

换成其他扩展名亦可

仅列出其他格式的文件名

仅显示当前目录下的

txt

文件名称(

通配符

?

规定

字符个数

):

@echo off

for %%i in (??.txt) do echo "%%i"

pause

仅会输出当前目录下

文件名为

2

个字符的

txt

文件名

2

、【关于

for

语句的

/f

模式

(遍历

文件内容

模式)】

/f

模式

/f

模式用于

遍历文件中的内容

@echo off

for /f %%i in (test.txt) do echo %%i

pause

运行的结果,

逐行打印

test.txt

文件中的内容

shell编程总结

- 1 - shell编程总结

Shell编程是一种基于命令行的脚本编程语言,常用于Linux和Unix系统中。本文将对Shell编程进行总结,包括以下内容:

1. Shell的基础知识:介绍Shell的定义、历史、发展以及Shell与Linux的关系。

2. Shell脚本的格式:讲解Shell脚本的格式,包括文件头、变量、注释、命令等。

3. Shell命令:介绍常用的Shell命令,如ls、cd、cp、mv、rm、mkdir、cat等。

4. Shell的流程控制:讲解Shell脚本的流程控制语句,包括if语句、for循环、while循环、case语句等。

5. Shell函数:介绍Shell函数的定义、调用和传参等。

6. Shell的文本处理:讲解Shell脚本中的文本处理命令,如grep、sed、awk等。

7. Shell的正则表达式:介绍正则表达式的定义、语法和常用操作符等。

8. Shell的调试和错误处理:讲解Shell脚本的调试方法和错误处理语句,如set -x、set -e等。

9. Shell脚本的实战:通过实际案例介绍如何使用Shell脚本进行系统管理、日志分析、数据处理等。

通过本文的总结,读者可全面了解Shell编程的基础知识和常用技巧,提高Shell编程的能力。 - 2 -

linux csh while 循环语句

在 Linux 中,csh 是一个流行的 shell,但与 bash、sh、ksh 等其他 shell 相比,csh 的语法有所不同。在 csh 中,你不能直接使用 while 循环,但你可以使用 foreach 循环结构来实现类似的功能。

以下是一个如何在 csh 中使用 foreach 循环的示例,该循环的行为类似于 while 循环:

csh复制代码

#!/bin/csh

set counter = 1

foreach i (1 2 3 4 5) # 这将循环5次,类似于while(counter <= 5)

echo "Counter: $counter, Value: $i"

set counter = `expr $counter + 1`

end

在上面的示例中,我们使用 foreach 循环来迭代数字 1 到 5。每次迭代时,我们打印当前的计数器和值,并递增计数器。这相当于以下的 while 循环:

csh复制代码

#!/bin/csh

set counter = 1

while ($counter <= 5)

echo "Counter: $counter, Value: $counter"

set counter = `expr $counter + 1`

end

请注意,虽然 csh 的语法与 bash 或其他流行的 shell 有所不同,但它们的核心概念是相似的。如果你习惯于使用其他 shell,可能需要一些时间来适应 csh 的语法。

while和for循环语法

while和for循环语法

当您需要执行一组重复的任务时,可以使用循环结构。在编程中,有多种类型的循环可用于控制程序流程并重复执行某些代码段。两种最常用的循环类型是

while 循环和 for

循环。本文将介绍这两种循环的基本用法以及它们之间的差异。

一、while 循环

while 循环会一直执行某个条件为真的操作。当条件变为假时,则跳出循环。其基本语法如下:

while condition:

# code block to be executed

其中 condition

是一个表达式,在每次迭代开始时进行评估。如果为真,则执行包含在缩进代码块中的语句。然后再次测试条件,如果仍然为真,则继续执行循环。这个过程会一直持续到条件变为假为止。

下面是一个示例:

i = 0

while i < 5:

print("Value of i:", i)

i += 1

在这个例子中,我们将一个计数器变量 i 初始化为 0,并检查它是否小于

5。如果是,则打印出 i 的值并将其增加 1。然后再次检查条件,直到 i

不再小于 5。

二、for 循环

for 循环是一种用于遍历序列或其他可迭代对象的特殊类型的 while 循环。它可以遍历列表、元组或字符串等集合类型。其基本语法如下:

for variable in iterable:

# code block to be executed

其中 iterable

是要遍历的可迭代对象。每次迭代时,都会将它的下一个元素赋给变量 variable,并执行包含在缩进代码块中的语句。

下面是一个示例:

fruits = ["apple", "banana", "cherry"]

for fruit in fruits:

print("Value of fruit:", fruit)

在这个例子中,我们定义了一个名为 fruits 的列表,并使用 for

循环遍历其中的每个元素。每次迭代时,都会将列表中的下一个元素赋给变量 fruit,并打印出它的值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档