• shell脚本小Demo


    >一个学习写的小脚本、麻雀虽小,但是五脏俱全。该脚本的作用是获取当前系统的时间,然后将当前的时间作为文件名,创建文件。注意引号,反引号,$符号的使用规则等细节。
    <!--more-->

    脚本内容如下:

    {% highlight HTML %}
    #!/bin/bash
    #获取当前时间
    time="`date "+%Y-%m-%d_%H:%M:%S"`"
    touch "${time}.txt"
    path="./${time}.txt"
    for (( i = 0; i < 5; i++ )); do
    echo "写到刚刚创建的文件里面去咯~~~文件名是:$time" >> $path
    done

    for (( i = 0; i < 5; i++ )); do
    echo "当前脚本的路径写入到文件中去:`pwd`" >> $path
    done


    if [ "$1" == "YES" ]; then
    #管道
    cat $path | grep -n "脚本"
    else
    cat $path | grep -n "创建"
    fi
    {% endhighlight %}

    ## 解释:

    * date命令:获取系统的时间。时间格式使用了双引号来包裹,让其可以按照格式化输出。

    * 反引号(ESC按钮下方的那个按键 `)的作用是让其包含的shell命令可以被执行。

    * {} 花括号的作用是区分变量,${time}.txt的作用是让脚本知道引用time的变量并忽略.txt串。但是下文可以看到:**echo "写到刚刚创建的文件里面去咯~~~文件名是:$time"**,这里使用了$time却没有使用花括号来包裹、原因是time后面没有字符,脚本可以识别这个变量。

    * echo打印内容,并使用`>>`命令来追加写到$path文件中,单个`>`表示覆盖写入。

    * for..do..done循环的使用,if..else..fi的使用

    * 重要的管道知识。管道符号`|`用来连接前后两个命令,并将前一个命令的输出作为后一个命令的输入。

    * $1 这个变量代表执行脚本后跟的第一个参数。同理$2、$3,分别代表第二个参数,第三个参数。 $0 代表是脚本本身。

    * grep命令:查找文件中指定的字符串

    解释结束。

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

    执行演示:
    执行命令sh -x ./test.sh脚本,使用sh -x的好处是可以看到脚本的执行流程,逐步显示在控制台,便于调试,查找错误。

    带参数的执行:sh -x ./test.sh YES
    这样脚本就可以取出$1等于YES,然后if判断就会进去。

    结果:如开始所说,创建了以当前时间为名字的txt文件,打开txt文件,可以看到里面写了10行语句。

    有兴趣的可以复制上面的脚本并自己调试运行。一个很入门但很有指导意义的小脚本:D

  • 相关阅读:
    robotframework学习笔记七:robotframework的数据驱动模式
    robotframework学习笔记六:Set Variable If 关键字的使用
    robotframework学习笔记五:robotframework控制流if和for
    C# BS方向 该如何规划学习?【学习路线指南】
    毕业四年,我当初是如何走上编程这条路的!
    设计模式之备忘录
    设计模式之中介者
    设计模式之迭代器
    设计模式之命令模式
    nginx 499 错误解决
  • 原文地址:https://www.cnblogs.com/vokie/p/4864234.html
Copyright © 2020-2023  润新知