bash script 中變數跟字面常數相加的問題 - Linux

Enid avatar
By Enid
at 2008-05-15T12:30

Table of Contents

※ 引述《[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 的設定檔


總之,用您的方法
初步看起來是可以正常做運 算了

謝謝

--
Tags: Linux

All Comments

Ubuntu無線網路的怪問題

Annie avatar
By Annie
at 2008-05-15T12:15
之前一直測試失敗 結果後來想想 可能問題出現在延長線的身上 我是pc usb的線 現在抓到了 也可以上網 目前用無線網路上網 不過有件非常靈異的事 就是上網速度非常的慢 我是用10m/2m的 接fon 我有兩台電腦用無線 一台是XP很正常 沒事 這台的話就是下載速度非常的慢 但上傳確又相當正常 請問會是 ...

bash script 中變數跟字面常數相加的問題

Vanessa avatar
By Vanessa
at 2008-05-15T10:18
hi,大家 m=`grep -n %BLOCK\ SPECIES_POT ${JOB}.cell | sed and#39;s/:%BLOCK\ SPECIES_POT/ /gand#39;` n=`grep -n %ENDBLOCK\ SPECIES_POT ${JOB}.cell | sed and#3 ...

如何架設Mail server for linux

Oliver avatar
By Oliver
at 2008-05-15T08:36
※ 引述《jackypeter (jackypeter)》之銘言: : Dear every 高手: : 我以前是用window2003 andamp; exchange架mail server 其是用WINDOWS設定不太難 : 可是目前我的需求是要用LINUX來架SERVER : 可是linux的mail ...

fedora9新功能?

Lucy avatar
By Lucy
at 2008-05-15T07:44
安裝9之後 右上角(gnome介面)多了一個什麼網路連線的 不管怎麼使用都是錯誤... 現在似乎像是yum視窗介面的會卡在說啥網路連線沒有開啟 所以不給我安裝... 我知道描述的很模糊... 不過可能要有用的才知道... - ...

筆電+ubuntu7.10無線上網 抓不到網卡 뼠…

Tracy avatar
By Tracy
at 2008-05-14T23:48
小弟現在發現xp也有類似情況 然而就在我更新驅動程式後 就正常運作了!! 現在想問 我能不能夠強制在ubuntu下移除原本的無線晶片驅動程式 然後再將從lenovo網站下載的驅動程式給他灌下去 說不定就解決了 A__A 所以 請問指令如何打 = = 小弟已經耗很多時間 不想再找了 andgt; andl ...