zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    iOS 针对txt文档进行解码
    iOS导入其他APP下载的文件(用其他应用打开)
    地图定位
    NSURLSession
    利用box-shadow属性实现页面层叠效果
    利用vue-router和compoment重构代码--踩坑(一)
    markdown 一分钟入门
    webpack,配置,上手,例子
    在搜索框里添加放大镜的图标,且显示提示信息
    css3实现checkbox变开关按钮
  • 原文地址:https://www.cnblogs.com/vokie/p/4864234.html
Copyright © 2011-2022 走看看