我正在尋找屬性文件,如. PATH_TO_PROPERTYFILE
。如果在讀取值之後更改一個值,我如何更新原始文件以反映修改後的值?我試過$SOURCED_ARRY_NAME = ("${TEMP_ARRAY[@]}")
但這沒有幫助。另外我想要更新回屬性文件中。這基本上是從屬性文件訪問數組並對其進行修改。如何從shell腳本更新屬性文件中的數組?
文件名格式:abc.properties
services_deployed=()
xyzapps_deployed=()
我正在尋找屬性文件,如. PATH_TO_PROPERTYFILE
。如果在讀取值之後更改一個值,我如何更新原始文件以反映修改後的值?我試過$SOURCED_ARRY_NAME = ("${TEMP_ARRAY[@]}")
但這沒有幫助。另外我想要更新回屬性文件中。這基本上是從屬性文件訪問數組並對其進行修改。如何從shell腳本更新屬性文件中的數組?
文件名格式:abc.properties
services_deployed=()
xyzapps_deployed=()
您可以生成代碼,將變量與declare -p
它的當前值。
這樣:
declare -p SOURCED_ARRAY_NAME >>"PROPERTYFILE"
...將追加代碼設置SOURCED_ARRAY_NAME
其新的價值名爲PROPERTYFILE
文件的末尾。 BTW
vars=(SOURCED_ARRAY_NAME othervar1 othervar2 othervar3)
write_config() {
local varname
for varname in "${vars[@]}"; do
[[ ${!varname+set} ]] && declare -p "$varname"
done
}
write_config >"propertyfile"
,如果'TEMP_ARRAY'是:
因此,如果你知道它可以在配置文件中設置的變量名的完整列表,您可以爲所有的人都這樣做你正在設置自己,請注意,全大寫變量名是爲系統使用而保留的,所以將它們重用於自己的變量是不好的做法;請參閱spec @ http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html的第四段,指出shell變量和環境變量共享一個名稱空間。 (「包含小寫字母的環境變量名稱的名稱空間是爲應用程序保留的,應用程序可以使用此名稱空間中的名稱定義任何環境變量,而不修改標準實用程序的行爲。」) –
您是否具有完整的變量列表應該在該文件中設置?或者,他們都有一個共同的前綴? –
他們沒有共同的前綴,但我確實有要更新的變量列表! – vthallam