在bash中干净地转储关联数组内容的简单方法?
发布时间:2020-12-15 20:57:17 所属栏目:安全 来源:网络整理
导读:在zsh中,我可以使用单个命令轻松转储关联数组的内容: zsh% typeset -A foozsh% foo=(a 1 b 2)zsh% typeset foofoo=(a 1 b 2 ) 然而,尽管搜索高低,我能找到的最好的是declare -p,其输出包含声明-A: bash$typeset -A foobash$foo=([a]=1 [b]=2)bash$declare
在zsh中,我可以使用单个命令轻松转储关联数组的内容:
zsh% typeset -A foo zsh% foo=(a 1 b 2) zsh% typeset foo foo=(a 1 b 2 ) 然而,尽管搜索高低,我能找到的最好的是declare -p,其输出包含声明-A: bash$typeset -A foo bash$foo=([a]=1 [b]=2) bash$declare -p foo declare -A foo='([a]="1" [b]="2" )' 有没有一种干净的方法来获得像zsh输出(理想情况下foo =(a 1 b 2)或foo ='([a] =“1”[b] =“2”)’),最好不要求助于字符串操作? 解决方法
似乎除了字符串操作之外没有办法做到这一点.但至少我们每次都可以避免使用sed进程,例如:
dump_assoc_arrays () { for var in "$@"; do read debug < <(declare -p $var) echo "${debug#declare -A }" done } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |