linux 内置读取命令标志

linux built-in read command flags

我 运行 陷入了一个奇怪的境地。我在 RHEL 6.3 上。我正在尝试使用内置的 'read' 命令读取数组中文件中的行并对其进行处理。

在我的脚本中,我使用

while IFS=" " read -r -a appInfo
do
    echo "4 ${appInfo[0]}"
    echo "4 ${appInfo[1]}"
    echo "4 ${appInfo[2]}"
    echo "4 line *{appInfo[@]}"
    currentApp="${appInfo[*]}"
.....
done < details.txt

当我从命令行执行脚本时,它工作正常。读取命令显示以下信息

read: usage: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]

如果我在命令行上执行 read --version,我会得到

命令行 阅读版本(AT&T 研究)2006-12-19

但是当我尝试从 Bamboo 项目执行完全相同的脚本时,读取命令会生成错误

read: -a: unknown option
Usage: read [-ACprsv] [-d delim] [-u fd] [-t timeout] [-n nchar] [-N nchar]
            [var?prompt] [var ...]

Bamboo : 阅读版本 (AT&T Research) 2006-12-19

所以,如果版本显示相同,为什么标志显示不同?

可能是什么问题。我该如何解决这个问题,以便即使 运行 来自 Bamboo 计划,我也可以将该行读入数组?

感谢@John1024,我能够通过更改 #!从 #!/bin/sh 到 #!/bin/bash 的行(这是 运行 默认的 ksh shell )。

解决方案归功于@John1024,只是将其作为答案,以便将其标记为问题的解决方案。