精华内容
下载资源
问答
  • Linux Shell脚本for循环以及echo命令
    千次阅读
    2021-12-15 18:37:13

    Linux Shell脚本for循环以及echo命令

    一、echo命令 – 输出字符串或提取Shell变量的值

    1. 格式
    echo [参数] [字符串]
    
    1. 常用参数
    常用参数说明
    -n表示输出不换行
    -e输出转义字符,将转义后的内容输出到屏幕上
    \b相当于退格键,但前提是“\b”后存在字符 "\b"表示删除前一个字符 "\b\b"表示删除前两个字符
    \c不换行输出。后面无字符时相当于 echo -n "\c"后有字符时,将不被输出
    \n换行,但是换行后的新行从“\n”处开始另起一行
    \f换行,但是换行后的新行的开头位置连接着上一行的行尾
    \v与\f相同
    \t转义后表示插入tab,即横向制表符
    \r光标移至行首,但不换行,相当于使用“\r”以后的数字覆盖之前相等长度的字符
    \表示插入“\”本身
    1. 截取字符

    i=11,22,33,44

    echo ${i%,*}

    11,22,33

    从最后开始截最短的匹配部分,后面逗号“,”的地方被删除

    echo ${i%%,*}

    11

    从最后开始截最长的匹配部分,后面逗号","的地方全被删除

    echo ${i#*,}

    22,33,44

    从开头到最短的匹配部分,后面的“,”部分被删除

    echo ${i##*,}

    44

    从开头到最长的匹配部分,后面“,”部分全被删除

    i=“123456789”

    echo ${i:3:3}

    456

    从第三位开始,截取三位

    echo ${i:6:1}

    7

    从第6位开始,截取1位

    a=123

    echo ${a:-abc}

    123

    如果a被赋值,显示a的值,否则显示abc

    echo ${a:=abc}

    abc

    显示abc,并直接给a赋值abc

    二、for循环语句

    1. for循环结构

    读取不同的变量值,用来逐个执行同一组命令

    for 变量名 in 取值列表
    do                   
       命令序列
    done
    

    例题:

    • 1到100的和

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eX6XEP31-1639564613165)(C:\Users\Guiled7\Desktop\1.png)]

    do
    命令序列
    done

    
    例题:
    
    - 1到100的和
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/ec828f910b964f14aba571021240f5ff.png#pic_center)
    
    
    
    更多相关内容
  • for循环是编程语言中一种开界的循环语句,而循环语句[1] 由循环体及循环的终止条件两部分组成。for 循环的基本格式for 变量名 in 列表;do循环体done执行机制:依次将列表中的元素赋值给“变量名” ; 每次赋值后即...

    for循环是编程语言中一种开界的循环语句,而循环语句[1] 由循环体及循环的终止条件两部分组成。

    for 循环的基本格式

    for 变量名 in 列表;do

    循环体

    done

    执行机制:依次将列表中的元素赋值给“变量名” ; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束

    列表生成方式:

    直接给出列表

    整数列表:{start..end}, $(seq [start [step]] end)

    返回列表的命令:$(COMMAND)

    使用glob通配符,如:*. sh

    变量引用

    for循环的一些例子

    直接给出列表

    for i in 1 2 3;do #写了一个变量 “i”,列表写了3个参数,

    echo "$i" #打印一下i这个变量的值

    done #for循环结束

    执行结果

    [root@CentOS7.3 bin]#bash -x for.sh #用bash -x来执行脚本,并查看过程

    + for i in 1 2 3

    + echo 1 #可以看到第一次赋值是1

    1

    + for i in 1 2 3

    + echo 2 #第二次赋的值是2

    2

    + for i in 1 2 3

    + echo 3 #第三次的值是3

    3 #只有3个值所以循环了三次

    [root@CentOS7.3 bin]#

    2.整数型列表:计算100以内所有能被3整除的整数之和

    sum=0 #先写一个变量sum并赋值0

    for i in {1..100};do #变量名“i”,列表用{1..100}

    if [[ $i%3 -eq 0 ]];then #用if判断“i”变量的值除以3的余数等不等于0

    let sum+=i #如果余数等于0,“sum”的值就和“i”的值相加

    fi #if判断结束

    done #for循环结束

    echo "100以内所有能被3整除的整数的和是$sum" #打印“sum”变量的值

    unset sum i #删除变量

    执行结果。由于过程比较长,所以忽略了一些过程

    [root@CentOS7.3 bin]#bash -x for.sh #用bash -x来执行脚本,并查看过程

    + sum=0

    + for i in '{1..100}' #第一次循环

    + [[ 1%3 -eq 0 ]] #比对

    + for i in '{1..100}' #1除以3的有余数,所以直接进入第二次循环

    + [[ 2%3 -eq 0 ]]

    + for i in '{1..100}'

    + [[ 3%3 -eq 0 ]] #3除以3的余数等于0

    + let sum+=i #执行let

    + for i in '{1..100}'

    + [[ 4%3 -eq 0 ]]

    + for i in '{1..100}'

    + [[ 5%3 -eq 0 ]]

    + for i in '{1..100}'

    + [[ 6%3 -eq 0 ]]

    + let sum+=i

    + for i in '{1..100}'

    + [[ 7%3 -eq 0 ]]

    + for i in '{1..100}'

    + [[ 8%3 -eq 0 ]]

    + for i in '{1..100}'

    + [[ 9%3 -eq 0 ]]

    + let sum+=i

    + echo 100以内所有能被3整除的整数的和是1683 #打印结果

    + 100以内所有能被3整除的整数的和是1683

    + unset sum i #删除变量

    注:{1..100}表示展开1到100

    [root@CentOS7.3 app]#echo {1..10} #打印1dao10

    1 2 3 4 5 6 7 8 9 10 #效果

    3.命令的结果生成的列表:判断/etc目录下的文件的类型

    for i in `ls /app/*`;do #如果要用命令生成列表要加反向单引号

    if [ -f "$i" ] #判断$i的值是不是一个普通文件

    then echo "$i 是一个普通文件" #是普通文件就标准输出到屏幕

    sleep 0.5 #停顿0.5秒

    elif [ -d "$i" ];then #判断$i的值是不是一个目录

    echo "$i 是一个目录" #是目录就标准输出到屏幕

    sleep 0.5 #停顿0.5秒

    fi

    done

    执行结果

    [root@CentOS7.3 app]#bash -x for.sh #用bash -x来执行脚本,并查看过程

    ++ ls /app/backup.sh /app/logbackup.sh /app/meminfo.sh

    + for i in '`ls /app/*`'

    + '[' -f /app/backup.sh ']'

    + echo '/app/backup.sh 是一个普通文件'

    /app/backup.sh 是一个普通文件

    + sleep 0.5

    + for i in '`ls /app/*`'

    + '[' -f /app/logbackup.sh ']'

    + echo '/app/logbackup.sh 是一个普通文件'

    /app/logbackup.sh 是一个普通文件

    + sleep 0.5

    + for i in '`ls /app/*`'

    + '[' -f /app/meminfo.sh ']'

    + echo '/app/meminfo.sh 是一个普通文件'

    /app/meminfo.sh 是一个普通文件

    + sleep 0.5

    4.使用通配符

    for i in /ect*;do #用通配符

    if [ -f "$i" ]

    then echo "$i 是一个普通文件"

    sleep 0.5

    elif [ -d "$i" ];then

    echo "$i 是一个目录"

    sleep 0.5

    fi

    done

    执行结果

    [root@CentOS7.3 app]#bash -x for.sh

    + for i in '/etc/*'

    + for i in '`ls /app/*`'

    + '[' -f /app/backup.sh ']'

    + echo '/app/backup.sh 是一个普通文件'

    /app/backup.sh 是一个普通文件

    + sleep 0.5

    + for i in '`ls /app/*`'

    + '[' -f /app/logbackup.sh ']'

    + echo '/app/logbackup.sh 是一个普通文件'

    /app/logbackup.sh 是一个普通文件

    + sleep 0.5

    + for i in '`ls /app/*`'

    + '[' -f /app/meminfo.sh ']'

    + echo '/app/meminfo.sh 是一个普通文件'

    /app/meminfo.sh 是一个普通文件

    + sleep 0.5

    5.引用变量来生成列表

    for i in "$@" ;do #用系统变量$@,建议如果要引用变量要加双引号

    if [ -f "$i" ]

    then echo "$i 是一个普通文件"

    sleep 0.5

    elif [ -d "$i" ];then

    echo "$i 是一个目录"

    sleep 0.5

    fi

    done

    执行结果

    [root@CentOS7.3 app]#bash -x /app/for.sh /boot #输入一个参数/boot

    + for i in '"$@"'

    + '[' -f /boot ']' #这里显示/boot,引用变量成功

    + '[' -d /boot ']'

    + echo '/boot 是一个目录'

    /boot 是一个目录

    + sleep 0.5

    注:$@是一个特殊变量,作用是传递给脚本或函数所有输入的参数。

    展开全文
  • 今天继续给大家介绍Linux基础知识,本文主要内容是Linux Shell脚本循环相关内容。 一、shell循环——for循环 循环主要是为了重复执行一些命令,在Linux shell基本h编写中,支持for循环和while循环两种方式。 for...

    今天继续给大家介绍Linux基础知识,本文主要内容是Linux Shell脚本中循环相关内容。

    一、shell循环——for循环

    循环主要是为了重复执行一些命令,在Linux shell基本h编写中,支持for循环和while循环两种方式。
    for循环格式如下:

    for 循环初始条件
    do
    	循环体
    done
    

    循环条件可以类似C语言的风格,如:

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

    或者使用in表达式,如:

    for i in `seq 100` 
    for i in 1 2 3 4 5
    for i in {1..10..2}
    for i in `ls`
    

    二、shell循环——while循环

    while循环也是shell脚本中常用的循环方式,while循环格式如下所示:

    while 表达式
    do
        循环体
    done
    

    while循环体常用表达式如下所示:

    while ((i<=100))
    while [ $i -le 100 ]
    

    三、shell循环——循环控制语句

    Linux的shell脚本中有类似C语言风格的循环控制语句,在循环中,break命令可以跳出当前循环,而continue则可以跳转到下一次循环开始的地方。break和continue的引入使得脚本的循环代码更加灵活。

    四、shell循环——循环示例

    最后,给大家附几个简单的循环示例:
    1、计算1+2+3+……+100的和

    #!/bin/bash
    # 2021-10-15
    # Authored by pzz
    # Used to practise shell 
    i=1
    count=0
    while [ $i -le 100 ]
    do
        count=`expr $count + $i`
        i=`expr $i + 1`
    done
    echo $count
    

    2、压缩/root文件夹下文件

    #!/bin/bash
    # 2021-10-15
    # Authored by pzz
    # Used to tar /root
    for i in `ls /root`
    do
        tar -czf compress.tar.gz $i
    done
    

    原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

    展开全文
  • 循环不管在程序中还是脚本中都需要经常用到,在shell脚本时,经常需要for进行100次循环。这里谈谈几种从1到100的循环方法。 四种方法 C语言风格 for ((i=1; i<=100; i++)) do echo $i done Python风格(in的...
  • 本文主要给大家介绍了关于使用Shell脚本循环读取文件每一行的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 一、使用for循环 for line in `cat filename` do echo $line done ...
  • 1.当一个脚本需要传入的参数较多时,可以使用for循环进行参数遍历 示例: #!/bin/bash number=65 #定义一个退出值 index=1 #定义一个计数器 if [ -z $1 ];then #对用户输入的参数做判断,如果未输入参数则返回脚本...
  • 与其他编程语言类似,Shell支持for循环。 for循环一般格式为: 代码如下: for 变量名 in 列表 do  command1  command2  …  commandN done 当变量值在列表里,for循环即执行一次所有命令,使用变量名获取列表...
  • 通常,当人们提到“shell脚本语言”时,浮现在他们脑海中是bash,ksh,sh或者其它相类似的linux/unix脚本语言。脚本语言是与计算机交流的另外一种途径。使用图形化窗口界面(不管是windows还是linux都无所谓)用户...
  • 以上就是Linux shell数组循环的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 您可能感兴趣的文章:Shell获取字符串长度的多种方法总结用Shell判断字符串...
  • 今天小编就为大家分享一篇通过shell脚本循环进入目录执行命令的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • for 实现: 代码如下: #!/bin/bash set i=0 set j=0 for((i=0;i<10;)) do ... echo “————-j is $j ——————-“ ... 您可能感兴趣的文章:Shell中的循环语句for、while、until实例讲解Shel
  • 如下: workdir=$(cd $(dirname $0); pwd) ... 您可能感兴趣的文章:使用 Python 获取 Linux 系统信息的代码Linux系统信息查看常用命令linux shell中if的各种判断Linux shell脚本的建立与执行linux she
  • Red Hat Enterprise Linux Server release 6.5 (Santiago) [root]# awk --version | head -1 GNU Awk 3.1.7 众所周知,Shell脚本里面把一个普通变量传递给awk是非常简单的,直接用 -v 参数赋值就行了。 s
  • 本文实例讲述了python脚本内运行linux命令的方法。分享给大家供大家参考。具体实现方法如下: #/usr/bin/env python import subprocess class RunCmd(object): def cmd_run(self, cmd): self.cmd = cmd ...
  • 这次来介绍一下Shell的基本语法:   一、注释  Shell中的注释标志是井号 "... 一般每个Shell脚本文件的第一行都是指定脚本解释器  #!/bin/bash : 指定本脚本文件使用bash脚本解释器解释执行 ...

    这次来介绍一下Shell的基本语法

     

    一、注释

           Shell中的注释标志是井号 "#",除了脚本文件第一行的#不是注释之外,其他地方出现#,则说明#开始,到本行的末尾都是注释

     

    二、指定脚本解释器

           一般每个Shell脚本文件的第一行都是指定脚本解释器

           #!/bin/bash       : 指定本脚本文件使用bash脚本解释器解释执行

     

    三、if 判断语法

           <1>、判断大小

           首先Shell中判断两个数字大小的方式:

                  -gt(大于)  -lt(小于)  -eq(等于)  -le(小于等于)  -ge(大于等于)

           判断两个字符串的方式:

                  >(大于)    <(小于)   ==(等于)   >=(大于等于)   <=(小于等于)

     

           <2>、通过实例来描述if语法

     

    四、for循环语法

           <1>、第一种循环方式

     

     

     

          <2>、第二种循环方式

        

     

         <3>、第三种循环方式

     

          <4>第四种循环方式

     

    五、while循环语法

     

    六、until循环语法

           until与其他循环不同,它是判断表达是为假时进行循环。而其他循环是判断条件为真时进行循环,条件为假则跳出循环。(此循环并不常用)

     

    展开全文
  • Linux下,脚本的完成相对于C语言来说稍微随意一点,可以按照字的想法,只要有逻辑就可以了。 示例: 注意: clean的功能 这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还...
  • Linux——一个无限循环的Shell脚本

    千次阅读 2021-02-01 00:56:18
    因为在安装ROS的时候用命令rosdep update老timeout,所以干脆个无线循环脚本,一直执行,安装好了我打断即可。 用while实现无限循环 #!/bin/bash while true do rosdep update done
  • 主要介绍了linux shell循环,判断介绍,以及实例使用方法,需要的朋友可以参考下
  • 用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的...
  • Linux 系统 shell脚本读取配置文件
  • Linux Shell脚本while和until循环 一、while循环 只要条件成立,则反复循环,不成立即停止 while 条件测试操作 do 命令序列 done 例: 计算1到100所有整数和 二、until循环 until 条件测试操作 do 命令序列 ...
  • linux编写脚本的基本方法

    千次阅读 2021-07-27 10:36:15
    shell 解释器可当作人与计算机硬件的“翻译官”, 他作为用户与linux系统内部的通信媒介,除了能够支持各种变量与参数外,还提供了像判断,循环等高级编程语言有的控制流程的特性。 想要正确高效的做好系统运维工作...
  • 6)写脚本一定先测试再到生产上。 1 获取随机字符串或数字 获取随机8位字符串: 获取随机8位数字: cksum:打印CRC效验和统计字节 2 定义一个颜色输出字符串函数 function关键字定义一个函数,可加或不加。 3 批量...
  • Shell脚本: 1、#! 指定脚本执行的shell2、# 注释 3、命令或语法结构echo “输入内容”echo 输出空行执行: 1、shell 脚本 sh example2、给shell脚本执行权限 chmod u+x example案例:example sysinfo.sh 3abc...
  • linux下编程的程序猿都知道shell脚本,就算你不怎么熟悉,也应该听过的吧!那在shell脚本中的死循环该怎么呢?下面这篇文章就来给大家介绍了关于Shell如何实现让程序造死循环的几种方法,需要的朋友可以参考下。
  • while [ $i -le 2 ];do
  • 教程名称:Linux Shell命令行及脚本编程实例详解课程目录:【】第1章LinuxLinuxShell简介【】第2章初识LinuxShell【】第3章常用Shell(Bash)【】第4章Shell命令进阶【】第5章Shell编程基础【】第6章Shell的条件...
  • Q:1 Shell脚本是什么、它是必需...答:在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的。使用chsh命令可以改变默认的shell。示例如下所示: # chsh <username> -s # chsh linuxtechi -s /bin/sh
  • 内容包括: 第一章:开始shell程序 第二章:命令的输出和输入 第三章:分支和循环语句 第四章:参数解析和扩充 第五章:参数、变量和函数 第六章:字符串、文件和命令 第七章:正则式、sed和awk 第八章:调试和debug...
  • 今天小编就为大家分享一篇linux shell 中数组的定义和for循环遍历的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 110,375
精华内容 44,150
关键字:

linux 写脚本循环