利用 shell 對變量的替換處理能力,我們在設定變量時就更為靈活了:
A=B
B=$A
這樣,B 的變量值就可繼承 A 變量"當時"的變量值了。
不過,不要以"數學羅輯"來套用變量的設定,比方說:
A=B
B=C
這樣並不會讓 A 的變量值變成 C 。再如:
A=B
B=$A
A=C
同樣也不會讓 B 的值換成 C 。
上面是單純定義了兩個不同名稱的變量:A 與 B ,它們的值分別是 B 與 C 。
若變量被重復定義的話,則原有舊值將被新值所取代。(這不正是"可變的量"嗎? ^_^)
當我們在設定變量的時侯,請記著這點:
* 用一個名稱儲存一個數值
僅此而已。
此外,我們也可利用命令行的變量替換能力來"擴充"(append)變量值:
A=B:C:D
A=$A:E
這樣,第一行我們設定 A 的值為 "B:C:D",然後,第二行再將值擴充為 "B:C:D:E" 。
上面的擴充範例,我們使用區隔符號( : )來達到擴充目的,
要是沒有區隔符號的話,如下是有問題的:
A=BCD
A=$AE
因為第二次是將 A 的值繼承 $AE 的提換結果,而非 $A 再加 E ﹗
要解決此問題,我們可用更嚴謹的替換處理:
A=BCD
A=${A}E
上例中,我們使用 {} 將變量名稱的範圍給明確定義出來,
如此一來,我們就可以將 A 的變量值從 BCD 給擴充為 BCDE 。
(提示:關於 ${name} 事實上還可做到更多的變量處理能力,這些均屬於比較進階的變量處理,
現階段暫時不介紹了,請大家自行參考資料。如 CU 的貼子: