dev多行注释_Shell 实现多行注释的几种常用方法
Shell 语言中是没有类似于 C/C++, Python 等计算机语言多行注释的功能的,可是对于脚本文件进行调试时,我们不可避免的需要对其中的代码进行注释,如果是很少的几行代码,手动的在每行首添加 # 就可以了,但是如果需要对于大量的代码块进行注释,手动的注释每行代码就不适用了。对于这个问题,推荐一些常用的方法。
第一种方法(利用 Here Document 特性):
简单来说就是用一个空命令接收要注释的命令行,不做任何事情,以此来达到注释的目的。例如;
<< EOF
Cmd line 1
Cmd line 2
Cmd line 3
Cmd line 4
EOF
命令行在起始 << EOF 和随后临近的 第一个EOF 之间的内容都会被注释掉。
第二种方法,可以说是第一种方法的拓展,利用 Shell 中的空命令 : (冒号,注意其后有个空格),这个命令不做任何动作,举例如下;
: "
Cmd line 1
Cmd line 2
Cmd line 3
Cmd line 4
"
但是这里面会出现潜在的问题,如果被注释的 Cmd line 中有同类型的单或双引号时,注释是无效的。例如,
: "
Cmd line 1
Cmd line "2"
Cmd line 3
Cmd line 4
"
在 Cmd line “2” 中有同类型的引号,那么第一个引号之前的内容会被“注释”掉,但是往后代码内容可能会报错,所以用这种方法之前,最好检查一下避免同类型引号的出现。
结合第一种和第二种方法,综合策略是,
: << EOF
Cmd line 1
Cmd line 2
Cmd line 3
Cmd line 4
EOF
其实这种命令类似于:
cat << EOF > /dev/null
Cmd line 1
Cmd line 2
Cmd line 3
Cmd line 4
EOF
cat 可以换成 less, more, echo 等,> /dev/null 重导向命令类似于删除,不打印任何内容。
虽然说以上方法都能完成对多行代码的注释,但是它们也仅仅只是抑制了代码的执行和打印输出,Shell 还是会处理它们的,只是你看不到而已,这就不可避免的影响到了代码的执行效率。当然了,以现代计算机的处理速度,流处理文本文档上百万行都不会花费太多时间。可是,既然是被注释的代码,我们当然不想让它被执行。所以,这里推荐一个更终极的解决方法,那就是利用“函数”。
Shell 类似于 C/C++, Python, Java 等计算机语言也是可以定义函数的,定义的方法如下,
func_name () {
Code_block
}
这里我们并不探讨 Shell 函数的具体定义和使用,只是研究借助它如何实现代码的多行注释。那么,我们可以这样实现;
dump(){
Cmd line 1
Cmd line 2
Cmd line 3
Cmd line 4
}
除了 dump 函数名外,你可以选择任何个人喜欢的名称,但是记住只要不调用它就可以了。
综合所述,即使 Shell 不能多行注释,但是我们通过其他的一些方法,仍然可以实现这样的功能, 其中函数定义的方式相比之下更加强大,即有效的避免了单双引号的问题,同时也避免了注释模块的执行效率问题。
dev多行注释_Shell 实现多行注释的几种常用方法相关推荐
- vue——props的两种常用方法
vue--props的两种常用方法 1.实现父-->子的通信 举例如下: 父组件 parent.vue <children :channel="object1"> ...
- python电脑下载方法-python 获取机器snpython下载文件的几种常用方法
python中下载文件常用的几个模块有urllib,urllib2,requests,方法也很简单,代码如下: 002pc.com从python 获取机器snpython下载文件的几种常用方法分析来看 ...
- python下载方法-python下载文件的几种常用方法
本文信息本文由方法SEO顾问发表于2016-10-1814:34:30,共 506 字,转载请注明:python下载文件的几种常用方法_[方法SEO顾问],如果我网站的文章对你有所帮助的话,来百度口碑 ...
- python timer使用-Python timer定时器两种常用方法解析
这篇文章主要介绍了Python timer定时器两种常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方法一,使用线程中现成的: 这种一般 ...
- Java更新XML的四种常用方法简介
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=393702 本文简要的讨论了Java语言编程中更新XML文档的四种常用方法,并且分 ...
- vue方法传值到data_Vue 组件传值几种常用方法【总结】
使用vue也有很多年了,一直都没有整理一下相关知识,给大家总结下开发过程中所遇到的一些坑,主要给大家总结一下vue组件传值的几种常用方法: 1.通过路由带参数传值 ① A组件通过query把id传给B ...
- asp mysql insert_用asp把表单数据插入数据库的2种常用方法
用asp把表单数据插入数据库的2种常用方法: 1.直接使用sql语句的 优点:速度快,不耗资源 缺点:不能传递太长的字段内容,字段比较多时不易排错. 推荐有经验的编程者优先考虑. 具体操作: 假设表单 ...
- NSString的几种常用方法
NSString的几种常用方法 要把 "2011-11-29" 改写成 "2011/11/29"一开始想用ios的时间格式,后来用NSString的方法搞定. ...
- python定时器的使用方法_Python timer定时器两种常用方法解析
这篇文章主要介绍了Python timer定时器两种常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方法一,使用线程中现成的: 这种一般 ...
- html列表逆序输出,JS实现倒序输出的几种常用方法示例
主要介绍了JS实现倒序输出的几种常用方法,结合实例形式分析了JavaScript字符串与数组的转换.变量.分割.反转等相关操作技巧,需要的朋友可以参考下 本文实例讲述了JS实现倒序输出的几种常用方法. ...
最新文章
- FCN、Unet、Unet++:医学图像分割网络一览
- nginx禁止对写操作timeout时retry
- 三分钟教你用 Scarlet 写一个 WebSocket App
- gradle 项目打包成多个jar包_永不失优雅——高效管理Springboot项目
- LIS (nlogn)的算法
- c/c++教程 - 2.4.2.5 深拷贝和浅拷贝,堆区内存重复释放
- 在Ubuntu 18.04上搭建SonarQube服务
- “让我陪你走到人生的尽头。” | 也许AI能提供更好的临终关怀
- Mysql的远程连接
- 【MAC技巧】 MAC下两款免费的风扇调节工具
- 魔方cfop公式软件_【二阶篇】一个万能公式还原二阶魔方
- 正则表达式的‘前瞻后顾’
- wuc-tab标签点击不了_微信公众号新增标签功能,格力被中国移动取消竞标资格,全国电子无偿献血证上线,QQ新增辣椒酱表情,这就是今天的其他大新闻!...
- 自学Python标准库(1)
- N多系统单点登录,实现、解决方案。四种解决方案
- 毕达哥拉斯定理(又称 勾股定理)的证明
- JAVA计算机毕业设计基于vue技术的汽车维修检测系统设计与实现源码+数据库+系统+lw文档
- private方法可以被代理吗?
- 李航《统计学习方法》第2版 第1章课后习题答案
- 京东App秒杀抢购流程接口分析