zoukankan      html  css  js  c++  java
  • 整片注释 ,shell

    https://blog.csdn.net/qianggezhishen/article/details/51981804

    <<'COMMENT'

     mkdir  xxx

    balabalabala

    cd xxx

    COMMENT

    在我们写 shell 脚本的时候,特别在调试的时候经常需要注释多行命令,但在每一行前输入 # ,显得有些麻烦。

    基于 shell 命令的灵活性,我们可以使用下面的方法:

    方法一(这是比较稳妥的作法):可以采用 HERE DOCUMENT 特性,实现多行注释,比如

    <<'COMMENT'
    ...

    COMMENT
    1
    2
    3
    4
    举例如下:

    #!/bin/bash
    echo "Say Something"
    <<COMMENT
    your comment 1
    comment 2
    blah
    COMMENT
    echo "Do something else"
    1
    2
    3
    4
    5
    6
    7
    8
    方法二 ,直接采用 : 这个命令的特殊作用,但这种做法有很多局限性,而且会影响性能,下面会介绍它的原理及性能分析。

    如下是最简单的使用方法:

    : '
    COMMENT1
    COMMENT2
    '
    1
    2
    3
    4
    即 : + 空格 + 单引号。

    解释如下:

    首先要知道 : 在 shell 中的特殊作用,它是内置的命令,先看一下它的帮助说明:

    $ help :
    :: :
    Null command.
    No effect; the command does nothing.
    Exit Status:
    Always succeeds.

    即,: 它也是一个命令,既然是命令就会可以给它传参数,但因它会过滤掉这些参数,而单引号括起来的是普通的代码部分表示字符串,所以我们刚好可将来用来代表注释,表示在 : 后的 单引号括起来的部分在程序执行的时候忽略。

    另外如果不好理解,直接把它当作汇编中的 NOP, python 中的 pass ,它只是一个占位,每次返回都是真,即 $? 的话,结果会是 0 。

    如此一来,此方法是不是很绝妙? 但事实上里面潜藏着很多问题:

    它不会注释 shell 脚本中本身带有单引号的语句部分,除非你将程序中的单引号全部换成又引号,这样不爽。
    还是就是,虽然 : 会忽视后面的参数,但其实参数部分还是可能会被执行些操作,比如替换操作,文件截取操作等。所以这样会影响到代码的执行效率。
    例如:
    : > file 会截取 file 。
    : $(dangerous command) 这个替换操作照样会执行。
    所以第二种方法,只能临时用用。

    第三种方法,即:采用 : + << 'COMMENT' 的方式。

    #!/bin/bash
    echo "Say Something"
    : <<'COMMENT'
    your comment 1
    comment 2
    blah
    COMMENT
    echo "Do something else"
    1
    2
    3
    4
    5
    6
    7
    8
    注意:要加上单引号部分,有时候虽然不加不会有什么问题,但还是要加,以防出现莫名其妙的意外发生,比如发生字符扩展,命令替换等。

    但最保险的方法还是每行前加上 #
    ————————————————
    版权声明:本文为CSDN博主「强哥之神」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qianggezhishen/article/details/51981804

  • 相关阅读:
    java内部类
    重新回顾JSP
    vs 链接动态库 (不用放在可执行文件同一目录)
    c++ 文件夹读取文件
    为人处世
    Windows常用软件
    windows好用的软件
    冒泡排序,快速排序,归并排序
    最大公约数、最小公倍数、所有约数
    linux U盘 硬盘 unable to mount
  • 原文地址:https://www.cnblogs.com/morganh/p/15677587.html
Copyright © 2011-2022 走看看