Shell 脚本 - 无法创建用换行符分隔的列表



my code:

#!/usr/bin/bash

IFS=$'n'; read -r -a item < "animals.txt"
declare -p item

animals.txt:

dog
cat
duck
bird

所需输出:

declare -a item=([0]="dog" [1]=" cat" [2]=" duck" [3]=" bird")

结果:

declare -a item=([0]="dog")

Bash文档说,如果IFS未设置,那么默认值将是<space>,<tab><newline>,但即使我从代码中删除IFS=$'n',它仍然不起作用。

  1. read(包括read -a)读取1行输入,默认在空白处分割(由IFS设置控制)
  2. readarray(又名mapfile)读取多行输入,默认情况下以换行符分隔(由其-d参数控制)。
$ readarray -t item < animals.txt
$ declare -p item
declare -a item=([0]="dog" [1]="cat" [2]="duck" [3]="bird")

相关内容

  • 没有找到相关文章

最新更新