美文网首页
missing之bash脚本编写-3

missing之bash脚本编写-3

作者: 墨道院 | 来源:发表于2020-12-31 19:35 被阅读0次

    条件比较语句

    下面有个例子,将上面说的几个点综合了一下:

    #!/bin/bash
    
    echo "Starting program at $(date)" # Date will be substituted
    echo "Running program $0 with $# arguments with pid $$"
    
    for file in "$@"; do
        grep foobar "$file" > /dev/null 2> /dev/null
        # When pattern is not found, grep has exit status 1
        # We redirect STDOUT and STDERR to a null register since we do not care about them
        if [[ $? -ne 0 ]]; then
            echo "File $file does not have any foobar, adding one"
            echo "# foobar" >> "$file"
        fi
    done
    

    首先 $(date) 打印出时间,然后遍历脚本的输入参数,其实应该是各个文件,每一次循环都将相关文件全目录赋给$file变量,然后用grep命令在当前文件里搜索关键字foobar。后面这段命令:> /dev/null 2> /dev/null的意思是将grep命令的标准输入,和标准错误输出都重新定位到/dev/null设备上,其实就是舍弃,不要的意思。/dev/null是一种特殊的linux虚拟设备,专门用来倾倒不需要的垃圾数据。再后面的命令就是如果grep没有找到相关关键字,就将这个关键字添加到当前的文件里。

    说了这么多,才要说到正题:条件判断语句,其实很简单。上面的例子中,两个中括号里面就是条件判断。其实单个中括号也可以作为判断语句的容器,但是可能会和其他有冲突,所以为了减少错误,用双中括号更能降低出错的机会。

    相关文章

      网友评论

          本文标题:missing之bash脚本编写-3

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