多行注释的问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
renxinzhi
帖子: 970
注册时间: 2007-11-02 13:46

多行注释的问题

#1

帖子 renxinzhi » 2012-09-21 17:50

很多搜索结果基本都给了相同的方法,以http://blog.chinaunix.net/uid-291731-id-3019021.html为例
1、最简单方法
:<<BLOCK
....注释内容
BLOCK

把输入重定义到前面的命令,但是 : 是空命令,所以就相当于注释了。
如果注释中有反引号的命令就会报错,反引号部分不会被注释掉,例如 var=`ls -l` 就不会被注释掉。

2、解决注释中有反引号的问题
A、方法一
:<<BLOCK'
....注释内容
'BLOCK

B、方法二
:<<'BLOCK
....注释内容
BLOCK'

C、方法三
:<<'
....注释内容
'
我的脚本

代码: 全选

#!/bin/bash
:<<COMMENT'
#+++++++++++++++++++++++Cartesian to Direct++++++++++++++++++++++++++++++++++++
x=`cat tmp | head -3 | tail -1 | awk '{printf "%.8f",$1}'`
y=`cat tmp | head -3 | tail -1 | awk '{printf "%.8f",$2}'`
z=`cat tmp | head -3 | tail -1 | awk '{printf "%.8f",$3}'`
a=$(echo "scale=8;($x**$x + $y**$y + $z**$z)**0.5"|bc)
x=`cat tmp | head -4 | tail -1 | awk '{printf "%.8f",$1}'`
y=`cat tmp | head -4 | tail -1 | awk '{printf "%.8f",$2}'`
z=`cat tmp | head -4 | tail -1 | awk '{printf "%.8f",$3}'`
b=$(echo "scale=8;($x**$x + $y**$y + $z**$z)**0.5"|bc)
x=`cat tmp | head -5 | tail -1 | awk '{printf "%.8f",$1}'`
y=`cat tmp | head -5 | tail -1 | awk '{printf "%.8f",$2}'`
z=`cat tmp | head -5 | tail -1 | awk '{printf "%.8f",$3}'`
c=$(echo "scale=8;($x**$x + $y**$y + $z**$z)**0.5"|bc)
echo "$a    $b   $c"
'COMMNET

代码: 全选

./g2v: 行 17: 警告: 立即文档在第 17 行被文件结束符分隔 (需要 `COMMENT
#+++++++++++++++++++++++Cartesian to Direct++++++++++++++++++++++++++++++++++++
x=`cat tmp | head -3 | tail -1 | awk {printf')
我只好使用if语句来注释了
上次由 renxinzhi 在 2012-09-21 17:58,总共编辑 1 次。
明察,慎思,笃行
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 多行注释的问题

#2

帖子 枫叶饭团 » 2012-09-21 17:53

在每行前面加个#又不麻烦,何必去增加运算?
头像
renxinzhi
帖子: 970
注册时间: 2007-11-02 13:46

Re: 多行注释的问题

#3

帖子 renxinzhi » 2012-09-21 18:00

枫叶饭团 写了:在每行前面加个#又不麻烦,何必去增加运算?
我这次需要注释的行数还是比较少的,一行一行加#可不是不麻烦。
明察,慎思,笃行
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 多行注释的问题

#4

帖子 lilydjwg » 2012-09-21 18:03

renxinzhi 写了:
枫叶饭团 写了:在每行前面加个#又不麻烦,何必去增加运算?
我这次需要注释的行数还是比较少的,一行一行加#可不是不麻烦。
只要是连续的都不麻烦的啊。
头像
renxinzhi
帖子: 970
注册时间: 2007-11-02 13:46

Re: 多行注释的问题

#5

帖子 renxinzhi » 2012-09-21 18:11

lilydjwg 写了:
renxinzhi 写了:
枫叶饭团 写了:在每行前面加个#又不麻烦,何必去增加运算?
我这次需要注释的行数还是比较少的,一行一行加#可不是不麻烦。
只要是连续的都不麻烦的啊。
如此说来,还是备份后删除需要注释的最容易了
明察,慎思,笃行
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 多行注释的问题

#6

帖子 枫叶饭团 » 2012-09-21 18:14

难道lz你不是用vim/emacs之类的写shell?如果不是,那当我没说。。。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 多行注释的问题

#7

帖子 lilydjwg » 2012-09-21 18:21

renxinzhi 写了:
lilydjwg 写了:
renxinzhi 写了:
枫叶饭团 写了:在每行前面加个#又不麻烦,何必去增加运算?
我这次需要注释的行数还是比较少的,一行一行加#可不是不麻烦。
只要是连续的都不麻烦的啊。
如此说来,还是备份后删除需要注释的最容易了
这么麻烦……………………………………………………
回复