bash程式設計小問題!! - Linux

Daph Bay avatar
By Daph Bay
at 2008-09-01T17:37

Table of Contents

※ 引述《fu0653 (fu0653)》之銘言:
: 想請問像下面簡單的1加到100
: #!/bin/bash
: s=0
: for (( i=1; i<=100; i=i+1 ))
: do
: s=$(($s+$i))
: done
: echo "The result of '1+2+3+...+100' is ==> $s"
先把上面的檔案存成 a.sh
然後寫一個 b.sh
#!/bin/sh
a.sh&
echo B is end

存起來,然後RUN B 看看

: 原本只會run一次The result of '1+2+3+...+100' is ==> $s
: 那我在這行s=$(($s+$i))後面加上& 變成s=$(($s+$i))&
: 這樣子他就會run100次The result of '1+2+3+...+100' is ==> $s
: 是這樣子的意思嗎??
不會,會直接發生錯誤。因為& 是RUN一個新的PROCESS,包括一個新的環境。
SH的變數不會傳過去,要傳過去需要用引數或SH的繼承參數才能傳到新的程式
裡面。你這行指令沒頭沒尾,而且還是變數操作。結果就會變成什麼都沒作。

: → fu0653:哈哈~但是照WolfLord大大說的,的確是我想要的結果!! 09/01 16:51
要搞KUSO要講清楚,不然真的想學的人就慘了。

: → fu0653:不是啦!!我自己也試不出來= =,只是我想要的結果另開執行 09/01 17:02
: → fu0653:序執行不等待其結束,目前也是還不會!! 09/01 17:02
: → fu0653:怎麼試都不行ˋˊ 09/01 17:15
試試看:
#!/bin/sh
ls -al&
route &
netstat -alp&
ps -aux --cols512 &
echo batch is done

--
~~~ 一切的正義在曼尼大神的正義之前均無足輕重
在海賊的砲口下唯有曼尼大神的正義可以私下研究 ~~~
-= WolfLord =-
BM4GMR - A23203 -

--
Tags: Linux

All Comments

Mary avatar
By Mary
at 2008-09-06T03:07
科科...最後這幾行一下應該會洗到看不見batch is done吧??
Selena avatar
By Selena
at 2008-09-10T13:05
...經cygwin實驗...會頓蠻久才繼續...是cygwin的問題嗎?
Jack avatar
By Jack
at 2008-09-13T02:39
自問自答...的確是...cygwin的bash會頓一下
Valerie avatar
By Valerie
at 2008-09-17T04:40
重點是有沒有抓到&到底是什麼的FU了?
Charlie avatar
By Charlie
at 2008-09-19T18:21
我知道啊~只是好奇這..可以同步化嗎? 還是搞不懂原po需求
Rosalind avatar
By Rosalind
at 2008-09-21T13:13
我沒有想搞笑呀= = 我也是認真想學 所以試了&用法
Doris avatar
By Doris
at 2008-09-22T05:43
加 & 表示背景執行, 你可以想像 bash本身是一個程式,它只是
Caitlin avatar
By Caitlin
at 2008-09-26T17:27
謝謝WolfLord我懂了&的用法,你多執行幾次b.sh就會了解!!
Susan avatar
By Susan
at 2008-10-01T16:15
一直等你的輸入並呼叫執行你輸入的指令, 而如果你的指令有
Rebecca avatar
By Rebecca
at 2008-10-02T08:37
加 & 於指令的尾端,則 bash 會fork一個新的 thread 並回到
Gilbert avatar
By Gilbert
at 2008-10-05T04:35
bash 等你的下一個指令
Donna avatar
By Donna
at 2008-10-06T16:26
那如果for迴圈裡面執行wget,想讓wget並行此方法能做到嗎??
Ursula avatar
By Ursula
at 2008-10-10T17:26
可以,不過我通常會用另一個SH去叫WGET,確保WGET成功

光碟機壞掉的老筆電

Gary avatar
By Gary
at 2008-09-01T17:28
※ 引述《godfield (咖啡貓)》之銘言: : 4. 複製網路安裝所需的檔案 : 以上第四點, 敝人試過兩個版本: : fedora-8 以下目錄裡的兩個檔案 vmlinux 和 initrd.img : http://ftp.isu.edu.tw/pub/Linux/Fedora/linux/rele ...

bash程式設計小問題!!

Frederic avatar
By Frederic
at 2008-09-01T16:31
想請問像下面簡單的1加到100 #!/bin/bash s=0 for (( i=1; iandlt;=100; i=i+1 )) do s=$(($s+$i)) done echo and#34;The result of and#39;1+2+3+...+100and#39; is == ...

bash程式設計小問題!!

Hedy avatar
By Hedy
at 2008-09-01T14:51
想請問各位, 在寫bash程式設計時,可以像C一樣利用fork函數, 去產生子行程來並行運作嗎?? 該如何實做呢?? 上網goole了,但卻無法了解及有進度, 拜託各位幫忙了!! - ...

Ubuntu 下 firefox, terminal 當掉

Kama avatar
By Kama
at 2008-09-01T05:56
最近剛用了一台舊電腦安裝 Ubuntu 8.04 安裝完以後都沒有問題,開機也都很正常 可是開firefox要匯入書籤到firefox 的時候 firefox 就自動關掉了 於是我就用終端機執行firefox 然後匯入書籤 得到一個and#34;程式記憶體區段錯誤 (segmentation fault)an ...

新手請教 關於套件安裝問題

Xanthe avatar
By Xanthe
at 2008-09-01T03:04
※ 引述《s1300135 (DIU)》之銘言: : 最近為了專題 有些open source只能在linux跑 : 所以要在linux環境下寫程式 : 我選擇ubuntu8.04來試試看 : 我用wubi來安裝 所以很簡單的就完成安裝 : 可是當我想執行從sourceforge.net的那些專案的時候 : ...