无法通过“read”命令传输文件内容

无法通过“read”命令传输文件内容

我正在尝试将文件的内容读入数组以便稍后进一步处理。我正在使用read命令来填充数组值。以下是导致错误的我的代码的一部分。

read -r -a changefileArr < changedfile.txt

以下是我收到的错误

read: bad option: -a

我在用网站作为参考。我使用的是 MAC OS Monterey(默认 shell 是 zsh)。我需要使用数组,因为我需要进行基于索引的迭代。我稍后在代码中需要索引。如果有更好的方法(即使不使用read命令)请发表评论。

编辑1:

  • 我正在使用 Linux 终端来测试这些命令。我没有给任何shebang。
  • 如果read -a无法在 zsh 中运行。我可以获得 zsh 的一些等效命令吗

答案1

您正在使用zsh所以您不应该期望bash内置命令(例如read必须工作)。

如果您键入,bash您将进入交互式bashshell,您可以在其中继续本教程。意识到教程对数组变量的处理不正确。此类变量(实际上是所有变量)在使用时应加双引号,但它未能做到这一点。

read -r -a changefileArr < changedfile.txt      # Read line of items into array

printf "element: %s\n" "${changefileArr[@]}"    # An example
echo "${changefileArr[@]}"                      # Unpredictable if first value starts with a dash
echo ${changefileArr[@]}                        # WRONG !

bash注意:即使您使用的zsh是默认交互式 shell,您也可以编写和使用shell 脚本。

相关内容