给定file.txt
:
first line
second line
third line
这适用于bash
:
while IFS=' ' read -a args; do
echo "${args[0]}"
done < file.txt
生产
first
second
third
也就是说,我们能够逐行读取文件,并且在每一行上,我们将行进一步拆分为一个使用空格作为分隔符的数组。但在 中zsh
,结果是一个错误:read: bad option: -a
。
我们如何才能实现与 inzsh
相同的目标bash
?我尝试了几种解决方案,但我永远无法使用空格作为分隔符将字符串拆分为数组。
从
man zshbuiltins
,zsh 的 read 改为使用-A
。因此命令是
注意默认情况下,zsh 数组编号以 开头
1
,而 bash 以 . 开头0
。