作者 主題: [教學] BASH 變數疊代範例  (閱讀 3289 次)

0 會員 與 1 訪客 正在閱讀本文。

thyme

  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 1281
    • 檢視個人資料
[教學] BASH 變數疊代範例
« 於: 2005-04-14 10:28 »
有稍微學過 BASH 的人都知道 eval 可用來做變數的疊代,
那有什麼用途呢?在大量變數名稱都很有相關性時,就會有用了,
有點像 C 的指標功能,某些時候還很好用呢!
講 shell 的書都會提到 eval 的用法,這邊就不說明,
直接舉一個實際範例:
代碼: [選擇]

[thyme@thyme test6_sh]$ cat eval.sh
#!/bin/sh
netman="網中人"
jou="老人"
three_son="三子"
breakfast="早餐"
lunch="午餐"
dinner="晚餐"
netman_breakfast="卡布奇諾咖啡"
netman_lunch="雞腿飯"
netman_dinner="歐式自助餐"
jou_breakfast="奶茶"
jou_lunch="排骨飯"
jou_dinner="炒飯"
three_son_breakfast="礦泉水"
three_son_lunch="涼麵"
three_son_dinner="魯肉飯"

for i in netman jou three_son; do
        for j in breakfast lunch dinner; do
                str_tmp1=$(eval echo \$$i)
                str_tmp2=$(eval echo \$$j)
                str_tmp3=$(eval echo \$${i}_${j})
                echo "${str_tmp1}的${str_tmp2}是${str_tmp3}"
               
        done
done
[thyme@thyme test6_sh]$ ./eval.sh
網中人的早餐是卡布奇諾咖啡
網中人的午餐是雞腿飯
網中人的晚餐是歐式自助餐
老人的早餐是奶茶
老人的午餐是排骨飯
老人的晚餐是炒飯
三子的早餐是礦泉水
三子的午餐是涼麵
三子的晚餐是魯肉飯

--
本文章自由轉載,需註明文章作者及來源。