无法打印数组中的单个元素

无法打印数组中的单个元素

我正在编写一个测试脚本来查看数组在 UNIX 脚本中如何工作。

#! /bin/bash
arr=(one two three)
echo "${arr[0]}"

我期望上面的内容会打印“one”,这是数组中的第 0 个位置

但是当我运行它时,bash test.sh输出打印为

(one two three)

我认为它将变量视为字符串。 (我也尝试过sh test.sh,但也没成功。)

当我尝试添加声明时,declare -a arr它说not a valid identifier

uname -a
Linux XXXXXXX 2.6.32-754.31.1.el6.x86_64 #1 SMP Mon Jun 15 08:08:31 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux

这里需要一些帮助。谢谢。

答案1

感谢您的评论。这些评论让我有了不同的想法。问题在于 EOL 转换。 .sh 文件是在 Windows 中创建的,并且 EOL 为“CR 和 LF”。我使用 notepad++ 转换为 UNIX 样式 EOL,仅是“LF”,问题就消失了。

相关内容