Re: [問題] bash程式設計小問題!!
※ 引述《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 -
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.131.231.104
推
09/01 17:42, , 1F
09/01 17:42, 1F
→
09/01 17:49, , 2F
09/01 17:49, 2F
→
09/01 17:50, , 3F
09/01 17:50, 3F
→
09/01 17:54, , 4F
09/01 17:54, 4F
→
09/01 18:03, , 5F
09/01 18:03, 5F
→
09/01 18:11, , 6F
09/01 18:11, 6F
→
09/01 18:19, , 7F
09/01 18:19, 7F
推
09/01 18:20, , 8F
09/01 18:20, 8F
→
09/01 18:20, , 9F
09/01 18:20, 9F
→
09/01 18:21, , 10F
09/01 18:21, 10F
→
09/01 18:22, , 11F
09/01 18:22, 11F
推
09/01 18:24, , 12F
09/01 18:24, 12F
→
09/01 18:48, , 13F
09/01 18:48, 13F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):