Shell for循环

与其他编程语言类似,Shell支持for循环。

for循环一般格式为:

for 变量 in 列表
do
    command1
    command2
    ...
    commandN
done

列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。

in 列表是可选的,如果不用它,for 循环使用命令行的位置参数。

例如,顺序输出当前列表中的数字:

#!/bin/bash

for loop in 1 2 3 4 5
do
    echo "The value is:$loop"
done

运行结果:

The value is:1
The value is:2
The value is:3
The value is:4
The value is:5
#!/bin/bash

num=1
for str in ‘This is a string‘ ‘test‘
do
  echo $num
   num=$[$num+1]
   echo $str
done

num=1
for str in ‘This is a string‘
do
  echo $num
   num=$[$num+1]
   echo $str
done

运行结果:

1
This is a string
2
test
1
This is a string

显示主目录下以 .bash 开头的文件:

#!/bin/bash

for FILE in $HOME/.bash*
do
  echo $FILE
done

for FILE in $HOME/.bash* ; do  echo $FILE
done

运行结果:

/root/.bash_history
/root/.bash_logout
/root/.bash_profile
/root/.bashrc

普通的for循环

#!/bin/bash
echo `expr 4 \* 4`

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

方法1:
    for 变量 in 常量列表; do 一些命令; done;

for file in $(ls);do echo $file;done
for i in 1 2 3 4 5;do echo $i; done;

方法2:
    for (( 变量初始化; 条件判断; 变量自变 )); do 一些命令; done;

for((i=0; i<10; i++)); do echo $i; done
#!/bin/bash

MAX=10

for ((i=0; i < MAX; i++))
do
    echo $i
done

for ((i=0; i < $MAX; i++))
do
    echo $i
done
#/bin/bash

MAX=10

for ((i=0; i < MAX; i++))
do
   echo $(expr $i \* $i)
   echo $[$i * $i]
done
时间: 2024-11-03 08:29:21

Shell for循环的相关文章

Linux Shell系列教程之(十)Shell for循环

本文是Linux Shell系列教程的第(十)篇,更多Linux Shell教程请看:Linux Shell系列教程 基本任何语言都有自己的循环语句,Shell当然也不例外,今天就为大家介绍下Shell for循环的用法. Shell for循环语法 Shell for循环的语法如下所示 for 变量 in 列表 do command1 command2 ... commandN done 列表是一组值(数字.字符串等)组成的序列,每个值通过空格分隔.每循环一次,就将列表中的值依序放入指定的变量

Linux Shell系列教程之(十一)Shell while循环

本文是Linux Shell系列教程的第(十一)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇Linux Shell系列教程之(十)Shell for循环中,我们已经对Shell 循环语句的for循环进行了介绍,本篇给大家介绍下Shell 中另一种循环语句:Shell while循环. Shell while循环语法及特点 Shell while循环的语法如下所示: while command do Statement(s) to be executed if

shell脚本--循环结构

shell的循环结构有while和for两种 while循环 while后面跟着判断条件,判断条件可以为多个,但是每一个判断条件都要是用单独的 [  ]括起来,然后多个判断之间使用 &&.||来表示含义. 例子: #!/bin/bash #文件名:test.sh tot=0 num=10 while [ $num -gt 0 ] do tot=$(($tot + $num)) num=$(($num - 1)) done echo "总和为"$tot 运行结果如下: [

Shell while循环详解

while 循环是 Shell 脚本中最简单的一种循环,当条件满足时,while 重复地执行一组语句,当条件不满足时,就退出 while 循环. Shell while 循环的用法如下: while conditiondo    statementsdone condition表示判断条件,statements表示要执行的语句(可以只有一条,也可以有多条),do和done都是 Shell 中的关键字. while 循环的执行流程为: 先对 condition 进行判断,如果该条件成立,就进入循环

Shell 编程 循环语句

本篇主要写一些shell脚本循环语句的使用. for 循环 指定次数 #!/bin/bash for ((i=1;i<=10;i++)) do echo $i done [[email protected] ~]# vim num.sh [[email protected] ~]# chmod +x num.sh [[email protected] ~]# ./num.sh 1 2 3 4 5 6 7 8 9 10 遍历循环 #!/bin/bash TMP=$(cat username.txt

shell条件-循环-分支-函数

shell流程控制  ( if  结构     循环结构    分支结构)                       控制脚本的执行过程                       流程控制彼此可以互相嵌套使用,也可以自己嵌套自己                       根据条件的条件判断结果执行-----------------------------------------------------if结构 单分支 if  条件判断;then    执行的代码    ......fi i

linux shell for循环解决递归循环目录结构

今天总结一下关于linux shell里的递归循环的问题起因是一个群友在群里的提问问的是怎么把有或多或少空目录的几个文件移动走的问题归根结底就是一个递归循环的问题 如果之前接触过c语言之类的编程语言.那么这个很好理解就是通过函数来不断的自己调用自己这种方法有一个很大的弊端就是需要很多资源比如有一种进程调用的 fork 炸弹 就是自调用搞的 接下来我就贴一下代码然后简单的讲解一下 #!/bin/sh . /etc/plus.lib a() {     for file  in `ls $1`   

Shell 学习17 - Shell for 循环

与其他编程语言类似,Shell支持for循环. for循环一般格式为: for 变量 in 列表 do command1 command2 ... commandN done 列表是一组值(数字.字符串等)组成的序列,每个值通过空格分隔.每循环一次,就将列表中的下一个值赋给变量. in 列表是可选的,如果不用它,for 循环使用命令行的位置参数. 例如,顺序输出当前列表中的数字: for loop in 1 2 3 4 5 do echo "The value is: $loop" d

shell 数字循环中变量的使用

shell环境,假设有一个变量NUM,需要用一个for循环输出NUM到NUM+n之间的所有值 常用做法是 1 for a in {NUM..NUM+n} 2 do 3 echo ${a} 4 done 例如 但是引用了变量会报错 这里{${kk}..${tt}}被当作一整个字符串了 解决方法是用eval 1 for a in `eval echo {${kk}..$[kk+4]}` 2 do 3 echo ${a} 4 done 如下: mark一下