Bash 脚本:无法使用“@”或“*”回显数组中的所有值

Cam*_*ron 0 arrays bash

我通过显示数组中的所有元素来练习 Bash。到目前为止,我有

    PATH="\Directory\Stuff"
    echo $PATH
    Array[0]="dad"
    Array[1]="BAD"
Run Code Online (Sandbox Code Playgroud)

如果我说

    echo ${Array[0]}
Run Code Online (Sandbox Code Playgroud)

我会输出

    dad
Run Code Online (Sandbox Code Playgroud)

同样,访问索引为 1 的数组时,我会得到正确的结果。问题是这行不通:

    echo "${Array[*]}"
Run Code Online (Sandbox Code Playgroud)

从像这里这样的在线教程看,我应该期待它打印出来

    dad BAD
Run Code Online (Sandbox Code Playgroud)

但我得到了

     BAD
Run Code Online (Sandbox Code Playgroud)

注意BAD前有一个空格。

我不确定为什么会发生这种情况。如果有帮助,我将在 Windows 中使用 Cygwin。

我的问题是为什么我不输出“爸爸坏”?

rua*_*akh 5

你最有可能有一个流浪回车(又名\r^M在你的结束)Array[0]。回车意味着“回到当前行的开头”,允许任何后续文本覆盖已经打印的内容。

所以你的echo命令是打印dad,然后立即倒回到行首并打印 BAD,所以你看到的只是 BAD.

要解决此问题,您只需删除回车符。