作者slchen1013 (aa)
看板Linux
标题Re: [问题] bash script 中变数跟字面常数相加的问题
时间Thu May 15 12:30:25 2008
※ 引述《[email protected] (蒙古大夫 2.0)》之铭言:
: ※ 引述《[email protected] (aa)》之铭言:
: > hi,大家
: > m=`grep -n %BLOCK\ SPECIES_POT ${JOB}.cell | sed 's/:%BLOCK\ SPECIES_POT/ /g'`
: > n=`grep -n %ENDBLOCK\ SPECIES_POT ${JOB}.cell | sed 's/:%ENDBLOCK\ SPECIES_POT/
: > /g'`
: m=`awk '/%BLOCK\ SPECIES_POT/ {print NR}' ${JOB}.cell`
: 这样会不会比较简单?
清爽许多...大感恩
我後来想一下可能是因为我用 sed 的取代功能把多余字串删掉, 结果就在数字後
面多放了一个空白字元,造成变数没办法做加减
但是即使我把取代从 /parttern/ /g 改成 /pattern//g
在命令列上可以看到数字
但是这个变数还是不能拿来运算
我想我可能要研究一样这样的取代, 到底加了什麽东西在数字後面
: > POTpos=$(($m+1))
: > echo $m
: > echo $n
: > echo $POTpos
: > 如上, 我用 grep 从某个档案的找出特定 pattern 所在的行数,
: > 然後存在 m 跟 n
: > 接下来我要把 m + 1, 所以我就用了 POTpos=$(($m+1))
: > 可是 echo 出来的值却是空的
: 不知,我这边是正常。
: 能确定只有一行 %BLOCK SPECIES_POT 吗?否则要用 for loop 去
: 巡礼一下。
我在 cygwin 下的 bash 3.2.x 也是正常的=.=
可是 mac 下的 bash 2.5.x 跟在主要机器上的 bash 3.0 都不能用
主要机器可能是 redhat 系列分支,因为 /etc/ 底下有 yum 的设定档
总之,用您的方法
初步看起来是可以正常做运 算了
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.13.111.50