我正在尝试将文件的内容读入数组以便稍后进一步处理。我正在使用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
您将进入交互式bash
shell,您可以在其中继续本教程。意识到教程对数组变量的处理不正确。此类变量(实际上是所有变量)在使用时应加双引号,但它未能做到这一点。
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 脚本。