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语句来注释了
明察,慎思,笃行
-
枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
-
联系:
#2
帖子
由 枫叶饭团 » 2012-09-21 17:53
在每行前面加个#又不麻烦,何必去增加运算?
-
renxinzhi
- 帖子: 970
- 注册时间: 2007-11-02 13:46
#3
帖子
由 renxinzhi » 2012-09-21 18:00
枫叶饭团 写了:在每行前面加个#又不麻烦,何必去增加运算?
我这次需要注释的行数还是比较少的,一行一行加#可不是不麻烦。
明察,慎思,笃行
-
lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
-
联系:
#4
帖子
由 lilydjwg » 2012-09-21 18:03
renxinzhi 写了:枫叶饭团 写了:在每行前面加个#又不麻烦,何必去增加运算?
我这次需要注释的行数还是比较少的,一行一行加#可不是不麻烦。
只要是连续的都不麻烦的啊。
-
renxinzhi
- 帖子: 970
- 注册时间: 2007-11-02 13:46
#5
帖子
由 renxinzhi » 2012-09-21 18:11
lilydjwg 写了:renxinzhi 写了:枫叶饭团 写了:在每行前面加个#又不麻烦,何必去增加运算?
我这次需要注释的行数还是比较少的,一行一行加#可不是不麻烦。
只要是连续的都不麻烦的啊。
如此说来,还是备份后删除需要注释的最容易了
明察,慎思,笃行
-
枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
-
联系:
#6
帖子
由 枫叶饭团 » 2012-09-21 18:14
难道lz你不是用vim/emacs之类的写shell?如果不是,那当我没说。。。
-
lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
-
联系:
#7
帖子
由 lilydjwg » 2012-09-21 18:21
renxinzhi 写了:lilydjwg 写了:renxinzhi 写了:枫叶饭团 写了:在每行前面加个#又不麻烦,何必去增加运算?
我这次需要注释的行数还是比较少的,一行一行加#可不是不麻烦。
只要是连续的都不麻烦的啊。
如此说来,还是备份后删除需要注释的最容易了
这么麻烦……………………………………………………