readarray 和 tac 的用法

readarray 和 tac 的用法

我有一个包含“行”文本的文件,目前只有两行。我需要创建这些行的反向数组 - FIFO 样式。

以这种方式使用“readarray”效果很好:

readarray -t FileArray < "$PWD$DEBUG_DIR$DEBUG_MENU"

当我尝试“反转”文件时,我得到了乱码:

readarray -t FileArray < tac "$PWD$DEBUG_DIR$DEBUG_MENU"

我仍在学习替换,很明显我没有正确使用 tac 命令。我确实尝试了不同的“语法”但没有成功。

答案1

输入重定向(如cat < file)意味着 shell 正在打开输入文件并将其内容写入另一个进程的标准输入。不可能只在 后面添加命令<

但你可以使用流程替代使用以下语法从命令的输出创建文件描述符:

<(some_command)

这类似于使用命令的输出(例如使用变量)$(some_command)


尝试这个:

readarray -t FileArray < <(tac "$PWD$DEBUG_DIR$DEBUG_MENU")

相关内容