Linux 中的 mapfile 命令示例
mapfile 也称为(读取数组)是 Bash shell 用于读取数组的命令。它将标准输入中的行读取到数组变量中。此外,mapfile 必须从替换 (< <) 而不是从管道中读取。此外,与读取循环相比,mapfile 更快、更方便。它根据命令是否成功返回 1 或 0。如果未指定数组名称,则使用默认变量 MAPFILE 作为目标数组变量。
Syntax: mapfile [array]
或者,我们可以使用读取数组 [arrayname] 而不是 mapfile。
示例 1.从文件中读取数组:
$ mapfile MYFILE < example.txt
$ echo ${MYFILE[@]}
$ echo ${MYFILE[0]}
输出:
示例 2. 将输出捕获到数组中:
$ mapfile GEEKSFORGEEKS < <(printf "Item 1\nItem 2\nItem 3\n")
$ echo ${GEEKSFORGEEKS[@]}
此处,Item1、Item2 和Item 3 已存储在数组GEEKSFORGEEKS 中。
输出:
示例 3. 使用 -t 去除换行符并存储项目:
$ mapfile -t GEEKSFORGEEKS< <(printf "Item 1\nItem 2\nItem 3\n")
$ printf "%s\n" "${GEEKSFORGEEKS[@]}"
输出:
示例 4. 使用 -n 读取指定数量的行:
$ mapfile -n 2 GEEKSFORGEEKS < example.txt
$ echo ${GEEKSFORGEEKS[@]}
它最多读取 2 行。如果指定为 0,则考虑所有行。
输出: