美文网首页
Shell语法(2)--循环&文件读写

Shell语法(2)--循环&文件读写

作者: 刘小厨 | 来源:发表于2020-04-28 18:59 被阅读0次

    循环

    shell中系统环境变量有seq指令可以打印一个数组,执行seq 1 15:
    会打印1~15的数字

    for循环

    shell中的循环可以使用:

    举个栗子:

    #!/bin/bash
    # `seq 1 15`表示取上述seq指令的结果
    for i in `seq 1 15`
    do
            echo "条目: $i"
    done
    #-------------
    #执行输出条目: 1~15
    

    简单的累加举例:

    #!/bin/bash
    j=0
    #双括号代表算数运算的集合,expr是系统环境变量自带的脚本,类似于上面的seq expr指令后面加号前后一定加空格,写shell代码一应要注意空格
    for ((i=0;i<=100;i++))
    do
            j=`expr $i + $j`
    done
    echo "result: $j"
    #执行输出
    #result: 5050
    
    for循环文件压缩

    查找文件
    查找文件可以通过find命令实现比如执行find . -name "*.sh",可以查找当前文件夹下所有.sh格式的文件(包含子目录下的符合条件的文件)

    tar czf表示压缩
    例如执行 tar czf tar.tgz * 可以将当前目录下的所有文件压缩成.tgz格式
    也可以压缩指定文件夹,指定文件类型的文件集合,示例:

    #!/bin/bash
    #取root文件夹下的所有.sh文件,压缩到test.tgz文件
    for i in `find /root -name "*.sh"`
    do
            tar -czf test.tgz $i
    done
    

    while循环

    举个栗子:

    #!/bin/bash
    i=0
    while((i<=100))
    do
            echo "数字: $i"
            i=`expr $i + 1`
    done
    #输出1~100
    

    上述条件判断也可以用命令判断比如:

    #!/bin/bash
    i=0
    #双中括号表示命令条件 lt表示小于 注意空格
    while [[ $i -lt 100 ]]
    do
            echo "数字: $i"
            i=`expr $i + 1`
    done
    
    

    文件读写

    读文件

    shell中读文件直接通过read命令即可
    命令行输入read命令,会提示输入字符,可以在后面跟上变量名将输入字符赋值给变量:

    # read
    shell 读
    # read line
    shell 读取文件
    # echo $line
    shell 读取文件
    

    举个栗子:

    #!/bin/bash
    #</root/text.txt表示将文件输出到 尖括号前面的内容可以看做一个整体
    while read line
    do
            echo $line
    done</root/text.txt
    #打印结果--------------
    shell读文件
    第二行
    第三行
    

    如果只是打印文件内容,也可以用cat指令
    比如:

    # cat text.txt
    

    提示:如果输出中文字符乱码,最简单的方式,txt文件在linux下创建(winSCP支持),不要在windows创建后上传,或者自行度娘解决

    相关文章

      网友评论

          本文标题:Shell语法(2)--循环&文件读写

          本文链接:https://www.haomeiwen.com/subject/jwvuwhtx.html