在bash shell中,我可以echo $?获取在cli上运行的程序的退出代码.鱼壳中的等价物是什么?似乎无法在文档中找到这个.
据此,man bash可以使用键值对的平面列表分配关联数组:
\n\n[\xe2\x80\xa6] 或被解释为交替键和值序列的单词列表: name=( key1 value1 key2 value2 ...)
\n
这确实有效,但使用数组来获取这些“交替键和值”是行不通的:\nname=( "${someArray[@]}" )
考虑这个例子:
\n#!/usr/bin/env bash\n\nset -u\n\n#declare -A map=(one ONE two TWO)\narray=(one ONE two TWO)\ndeclare -A map=("${array[@]}")\n# Workaround with `eval`:\n#eval "declare -A map=(${array[@]@Q})"\n\necho "KEYS:"\nprintf \' %s\\n\' "${!map[@]}"\necho "VALUES:"\nprintf \' %s\\n\' "${map[@]}"\n\necho "${#map[@]}"\nRun Code Online (Sandbox Code Playgroud)\n实际输出:
\nKEYS:\n one ONE two TWO\nVALUES:\n \nRun Code Online (Sandbox Code Playgroud)\n预期输出:
\nKEYS:\n two\n one\nVALUES:\n TWO\n ONE\nRun Code Online (Sandbox Code Playgroud)\n为什么会这样?
\n