Arrays 为什么declare-p$ARRAY不显示ARRAY';什么内容?
只是在玩Arrays 为什么declare-p$ARRAY不显示ARRAY';什么内容?,arrays,bash,environment-variables,Arrays,Bash,Environment Variables,只是在玩bash,我想出了 declare -a K <<< "${SHELL}"; declare -p $K declare-a K正确的使用方法是: declare -a K=("${SHELL}") declare -p K declare -a K='([0]="/bin/bash")' 因此,使用declare-pk而不是declare-pk 根据帮助声明: -p display the attributes and value of each NA
bash
,我想出了
declare -a K <<< "${SHELL}"; declare -p $K
declare-a K正确的使用方法是:
declare -a K=("${SHELL}")
declare -p K
declare -a K='([0]="/bin/bash")'
因此,使用declare-pk
而不是declare-pk
根据帮助声明
:
-p display the attributes and value of each NAME
@CharlesDuffy你确定declare
不从读取吗是的,非常确定。在bash4.0或更高版本中,readarray
或mapfile
可以做到这一点declare
没有。@CharlesDuffy我想我把2搞错了,它可能是mapfile
,因为readarray
显然只是mapfile
本身的别名。但是我仍然不明白这个命令是怎么回事。每个名称的属性和值是什么意思?是什么将此属性和值
链接到所讨论的名称
?@user2485710,-a
——作为一个数组——是一个属性。如果您已将任何内容分配给数组,则它们将是值。最后一行是帮助声明中-p
行的复制/粘贴。简单地说,declare-p
为您提供了一个文本,您可以直接在脚本中使用该文本进行声明。@anubhava我在假设K
变量不是空的情况下对此进行了推理,显然,这不是因为命令declare-p
与我原来的命令declare-a K@user2485710的输出相同,……因此,希望通过理解declare-pk
和declare-p$K
之间的区别,这种区别就不会那么奇怪了。