Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 为什么declare-p$ARRAY不显示ARRAY';什么内容?_Arrays_Bash_Environment Variables - Fatal编程技术网

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
之间的区别,这种区别就不会那么奇怪了。