下面我粘貼了我的代碼的一小部分,其中涵蓋了我所擁有的問題。我在Unix腳本中運行了三個for
循環。第一個循環n
僅運行整數值。第二個循環k
也運行整數值,但我稍後更改爲kappa
以表示所有值除以10,在這種情況下範圍是0:0.1:10
。定義具有預先指定的變量值的for循環
現在,我的問題涉及第三個循環。我是一個初學Unix編程的初學者,所以這可能是一個非常基本的問題,但我似乎無法弄清楚。假設第三個循環覆蓋一組預定義值,即p=[0 1/15 1/12 1/10 2/15 1/6 1/5 1/4 1/3]
。我已經將jmax
定義爲9,但我不知道如何將這些對應的p
值設置爲此循環參數。基本上我只想設置一個數組來保存這些值然後賦值,任何人都可以請給我一些指導,告訴我怎麼做?
請注意:由於其他使用$j
我必須保持for
循環的開始不變!
代碼部分:
for ((n=0;n<${nmax};n++)); do # first loop
for ((k=0;k<${kmax};k++)); do # second loop
for ((j=0;j<${jmax};j++)); do # third loop
# specify you job ......
kappa=$(echo "scale=10; ${k}/10" | bc -l)
非常感謝!
我認爲這是回答什麼,我一直在尋找for,但現在我意識到我需要保持for循環的完整定義('for((j = 0; j <$ {jmax}; j ++));')。我仍然可以在for循環之前定義p,但是您能否在答案中解釋如何在for循環中提取p的第一個值? – Fraukje
好吧,我想我已經知道了我自己,所以說我必須使用'for((j = 0; j <$ {jmax}; j ++));',我定義'p'你的答案,然後在for循環中,我可以使用'prob = $(echo $ {p [$ j]})''。你能否繼續這樣做,如果在你的答案中同意改變這一點?它可能會幫助別人! :) – Fraukje