@2013/7/19
- 添加 bashmap_clear命令,可以刪除Key或清空整個map。 步驟1:把函數加入bash指令碼中(或.bashrc)
# for bashmap {# echo md5 code for $1md5(){ if [ X"$1" == X"" ] then echo "" else echo "$1" | md5sum - | cut -c 1-32 fi}# Usage# > bashmap "key" "value" # set map[key] = value.# > bashmap "key" # print map[key]bashmap(){ WX_BASHMAP_PREFIX="BASHMAP_" export WX_BASHMAP_PREFIX md5key=$(eval "md5 '$1'") case "$#" in 1) eval "echo \$$WX_BASHMAP_PREFIX$md5key" ;; 2) eval "export $WX_BASHMAP_PREFIX$md5key='$2'" ;; *) echo 'Usage:' echo ' bashmap "key" "value"' echo ' bashmap "key"' ;; esac}# Usage:# > bashmap_clear # clear All map items# > bashmap_clear Key # clear a map time by Keybashmap_clear(){ WX_BASHMAP_PREFIX="BASHMAP_" export WX_BASHMAP_PREFIX case "$#" in 0) for env in $(set | grep "^$WX_BASHMAP_PREFIX" | cut -d'=' -f1) do unset $env done ;; 1) md5key=$(eval "md5 '$1'") unset $WX_BASHMAP_PREFIX$md5key ;; esac}# for bashmap }
步驟2:使用bashmap設定Key:Value
> bashmap A "Value for A"> bashmap B "Value for B"> bashmap "A B" "Value for A B"
步驟3:實用bashmap獲得Key對應的Value,若沒有預設Key則返回空串""
> bashmap AValue for A> bashmap BValue for B> bashmap "A B"Value for A B
步驟4:刪除指定Key
> bashmap_clear "B"
步驟5:清空map
> bashmap_clear
Have fun! :)