我在我的腳本代碼中設定了一個帶有靜態值的陣列。它基本上是處理字串的,我想洗掉其中的一些值。
不知為何,我沒有找到任何方法來覆寫我的腳本代碼中的陣列值。
我可以洗掉值,但只是在我的腳本的生命周期內。當腳本結束時,我的陣列被重置為硬編碼的值。
我怎樣才能做到這一點呢?
uj5u.com熱心網友回復:
你可以這樣堅持,為你的腳本的下次運行保存一個修改過的陣列狀態:
default_fruits=( 'apricot' 'banana' 'ocoa' )
# Try to restore saved fruits array from saved_fruits.sh
if ! . saved_fruits.sh
# if not available, use the default fruits
then fruits=( "${default_fruits[@]}"/span> )
fi
# 列印水果陣列,第一次運行后會有所不同。
printf 'Fruits:
printf '%s
' "${fruits[@]}"
# 在運行時改變水果陣列。
fruits[1]='blueberry'。
# 保存陣列,以便下次恢復。
declare -p fruits >save_fruits.sh
第一次運行這個腳本:
apricot
香蕉
可可
隨后的運行將輸出:
apricot
藍莓
可可
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/324468.html
標籤:
