我通过显示数组中的所有元素来练习Bash。到目前为止,我有
PATH="\Directory\Stuff"
echo $PATH
Array[0]="dad"
Array[1]="BAD"
如果我说
echo ${Array[0]}
我将输出
dad
同样,我将获得正确的结果,使用索引1访问数组。问题是这不起作用:
echo "${Array[*]}"
从here这样的在线教程来看,我应该期待它打印
dad BAD
但我得到了
BAD
请注意,BAD之前有一个空格。
我不确定为什么会这样。如果有帮助,我会将Cygwin与Windows一起使用。
我的问题是为什么我不输出"爸爸坏"?
答案 0 :(得分:4)
你很可能在\r
的末尾有一个迷路回车(a.k.a。^M
或Array[0]
)。回车意味着“返回到当前行的开头”,允许任何后续文本覆盖已经打印的内容。
因此,您的echo
命令正在打印dad
,然后立即倒回到行的开头并打印 BAD
,所以您看到的只是 BAD
。
要解决此问题,您只需要删除回车。