📜  Linux 中的 mapfile 命令示例

📅  最后修改于: 2022-05-13 01:57:29.230000             🧑  作者: Mango

Linux 中的 mapfile 命令示例

mapfile 也称为(读取数组)是 Bash shell 用于读取数组的命令。它将标准输入中的行读取到数组变量中。此外,mapfile 必须从替换 (< <) 而不是从管道中读取。此外,与读取循环相比,mapfile 更快、更方便。它根据命令是否成功返回 1 或 0。如果未指定数组名称,则使用默认变量 MAPFILE 作为目标数组变量。

或者,我们可以使用读取数组 [arrayname] 而不是 mapfile。

示例 1.从文件中读取数组:

$ mapfile MYFILE < example.txt
$ echo ${MYFILE[@]}
$ echo ${MYFILE[0]}

输出:



Linux 中的 mapfile 命令和示例

示例 2. 将输出捕获到数组中:

$ mapfile GEEKSFORGEEKS < <(printf "Item 1\nItem 2\nItem 3\n")
$ echo  ${GEEKSFORGEEKS[@]}

此处,Item1、Item2 和Item 3 已存储在数组GEEKSFORGEEKS 中。

输出:

Linux 中的 mapfile 命令和示例

示例 3. 使用 -t 去除换行符并存储项目:

$ mapfile -t GEEKSFORGEEKS< <(printf "Item 1\nItem 2\nItem 3\n")
$ printf "%s\n" "${GEEKSFORGEEKS[@]}"

输出:

Linux 中的 mapfile 命令和示例

示例 4. 使用 -n 读取指定数量的行:

$ mapfile -n 2 GEEKSFORGEEKS < example.txt
$ echo  ${GEEKSFORGEEKS[@]}

它最多读取 2 行。如果指定为 0,则考虑所有行。

输出:

Linux 中的 mapfile 命令和示例