迴圈內變數中的變數問題? - Linux

Adele avatar
By Adele
at 2015-05-18T19:10

Table of Contents

首先,小弟我的問題標題實在不知道要怎麼下,傷眼抱歉
如果有十多台電腦想丟同一個檔案上去,電腦的IP不是連續的
小弟我想寫一個腳本先設定變數為各台電腦的IP,變數為連續的
然後用迴圈去帶出個別電腦的IP位址,實在是不知道要如何寫這個變數,
爬文#1Ighf6r6 裡面的變數寫法也都失敗,顯示Bad substitution,
特此來請教各位前輩,感謝。

系統:HP-UX 沒有bash,只能使用sh,故採用while寫法。

程式碼如下:
#!/bin/sh
#set
i=0
ip1=11.11.111.111
ip2=22.22.222.222
ip3=33.33.333.333
ip4=44.44.444.444
ip5=55.55.555.555
#loop
while [ $i -le 4 ]; do
i=$(($i + 1))
echo "$i"
varname=ip$i
echo ${!varname}
done

--
Tags: Linux

All Comments

Edith avatar
By Edith
at 2015-05-21T03:02
這個sh有支援陣列嗎?可以用陣列配 for loop 比較不會寫得
&看得這麼痛苦XD
Erin avatar
By Erin
at 2015-05-22T10:17
我不是相關科系畢業的,我都是上網邊看邊學的,不太
Carol avatar
By Carol
at 2015-05-22T13:01
董怎麼查詢有無支援?
Thomas avatar
By Thomas
at 2015-05-25T14:00
打 sh --version 看看,應該有支援 array 吧
Jessica avatar
By Jessica
at 2015-05-29T03:21
我會查詢看看,如果支援,我會研究array看看,感謝提
Doris avatar
By Doris
at 2015-06-02T11:40
提供新方法
Ophelia avatar
By Ophelia
at 2015-06-04T10:57
你的 ip 連續出現有什麼特殊規則嗎 ?
Aaliyah avatar
By Aaliyah
at 2015-06-09T10:12
分2部分 但是幾乎都是+2
Damian avatar
By Damian
at 2015-06-11T21:17
分兩部份是指一部份數字100以內,另一100以上
Ivy avatar
By Ivy
at 2015-06-15T21:10
可以舉個例子嗎,有看真的沒懂...
Isla avatar
By Isla
at 2015-06-19T11:45
part 1:ip1=10.99.188.29;ip2=10.99.188.31
Adele avatar
By Adele
at 2015-06-24T11:38
part 2:ip3=10.99.188.131;ip4=10.99.188.133如上
Sandy avatar
By Sandy
at 2015-06-25T17:52
好像可以分2部分來寫,i+1變成i+2 如此之類的
Frederica avatar
By Frederica
at 2015-06-28T23:37
簡單說你要產生一堆動態變數嗎 ip1,ip2,ip3.. ?
Ingrid avatar
By Ingrid
at 2015-07-03T16:43
num=10
Yedda avatar
By Yedda
at 2015-07-08T10:04
像是這樣?http://i.imgur.com/s3jenbK.png
Olive avatar
By Olive
at 2015-07-10T05:49
繼續改一下就是: http://i.imgur.com/bL7WXaU.png
Ina avatar
By Ina
at 2015-07-12T12:11
執行結果畫面: http://i.imgur.com/bMchO8q.png
Mary avatar
By Mary
at 2015-07-15T05:56
${!varname} 好像是 bash 專用的功能,一般 sh 可用 eval
Hedda avatar
By Hedda
at 2015-07-19T17:12
只不過不好寫也很難看 eval 'echo "$'"$varname"'"'
Catherine avatar
By Catherine
at 2015-07-21T21:25
我再試試看這些方法,感謝幫忙
Andy avatar
By Andy
at 2015-07-26T12:24
想請問lantw44兄,eval後變數只在這一行生效嗎?
Ula avatar
By Ula
at 2015-07-28T17:18
試過在下一行寫指令,但是變數就不對了
Ula avatar
By Ula
at 2015-08-01T05:47
測試出來了,用=$()包起來,感謝幫忙
Edward Lewis avatar
By Edward Lewis
at 2015-08-05T04:26
把 ip放在另一個檔案就很方便了

Ubuntu SCTP CMT mode

Frederica avatar
By Frederica
at 2015-05-18T09:12
想利用 SCTP socket做一些事情, 但是 Ubuntu 似乎沒有support CMT (Concurrent Multipath Transfer) mode 不曉得有沒有人,有這方面的經驗,感謝!! - ...

nfs檔案砍不掉

Callum avatar
By Callum
at 2015-05-17T19:59
大家好 我的資料夾出現很多.nfsXXXXXXXXXXX的東西 導致再跑一些程式會出現問題 請問這是什麼東西 有辦法可以砍掉嗎? 用rm好像沒辦法 會顯示and#34;Device or resource busyand#34; 謝謝!! -- - ...

無線網卡附的driver跟系統抓的不一樣

Emily avatar
By Emily
at 2015-05-17T17:43
困擾很久了,完全無技可施才只好上來問 我買了一張totolink n150usm 無線網卡 他附的driver是rtl8192系列 可是lsusb看到的是mt7601 我在lubuntu自己編譯mt7601的driver後可以跑了 但是在pi上還是不行 (pi上有rtl8192的但是就是不會去抓) 請問該 ...

如何在script中確定mount有成功

Iris avatar
By Iris
at 2015-05-17T17:09
我有一個備份的指令,要在特定的分割區執行,所以第一步要確定mount。 雖然每次上線的的順序可能變掉,我可以用UUID解決這問題,然後我想到 用grep看mount有沒有備份資料夾的文字來確定mount有沒有成功: test -n `mount|grep --color and#34;on /backup ...

要如何改lsusb連結的硬體資訊?

David avatar
By David
at 2015-05-16T02:52
最近買了一塊totolink N150USM的無線網卡 結果Windows8.1抓的到也可以跑,但是lubuntu 15.04和RPi不行 找了老半天,結果看到lsusb的資訊: Bus 001 Device 005: ID 148f:7601 Ralink Technology, Corp. 可我的網卡 ...