[問題] 請問一個標準輸入讀取多個不定變數的問題

看板Linux作者 (花心只是掩飾內心的空虛)時間14年前 (2012/05/03 21:06), 編輯推噓0(008)
留言8則, 3人參與, 最新討論串1/1
我現在再寫一個script 其中有一段是要請使用者輸入所需的的原子種類, 我目前的作法是加入下列指令 read -p "Please enter the atomic species in the system" ATOM1 ATOM2 ATOM3..... ATOM10 不過這樣有兩個問題,就是當使用者輸入的原子總數超過10個的話 程式就會出問題。而且我每一個變數還要用if條件式檢查,是否為空變數。 再者如果不知道確切變數的輸入個數, 後續的程式處理會有點麻煩。 所以想請教一下, 有沒有辦法可以自動辨識使用者的輸入個數? 並分別自動指派? e.g. 使用者一輸入 H Li Na K Rb Cs Fr 然後就可以自動辨識,使用者輸入了7個變數 變數總數為7。 只派 ATOM1=H ATOM2=Li ATOM3=Na......... 有點類似直接把script當作指令來執行 shell 自動指派變數 $1=H, $2=Li, $3=Na..............., 只要echo $# 就可以得知變數總數 不知道如果為互動式腳本的話要怎麼處理? -- 所謂的私立龍頭(單選,請自行選擇帶入): a.輔仁 b.東海 c.東吳 d.長庚 e.中原 f.元智 g.逢甲 h.淡江 說穿了只不過是比上不足: h.台科 i.台清交成 j.剩下的中大 k.勉強叫得出名字的國立 比下又閒太過多餘: l.叫不出名字+沒聽過的國立科大與普大+除選項A~H以外的其他私立 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.136.176.158 ※ 編輯: sexyrickysky 來自: 140.136.176.158 (05/03 21:08)

05/03 22:21, , 1F
eval, 要不然可以用bash, 它有array
05/03 22:21, 1F

05/03 23:33, , 2F
不好意思,我還是不太明白,方便在說詳細點嗎?
05/03 23:33, 2F

05/04 00:27, , 3F
read -a ar; 收到的ar是array, 可以用${a[0]}, ${a[1]}叫出來
05/04 00:27, 3F

05/04 00:28, , 4F
${#ar[@]}是array的大小, 可是寫出這種東西都只能在bash用
05/04 00:28, 4F

05/04 00:28, , 5F
bash=/bin/bash
05/04 00:28, 5F

05/04 01:05, , 6F
echo "vars received in the script -> $@"
05/04 01:05, 6F

05/04 01:37, , 7F
我了解了!感謝,今天才知道原來read有讀aray的功能
05/04 01:37, 7F

05/04 01:40, , 8F
只能在bash用倒是無所謂,反正我用的機器都是bash的
05/04 01:40, 8F
文章代碼(AID): #1FeeBoru (Linux)
文章代碼(AID): #1FeeBoru (Linux)