首页 > 解决方案 > 如何使用 SH 从文本填充创建列表?

问题描述

我需要创建一个 SH 脚本来读取包含目录列表的文件

dirA
dirB
dirC

并使用此信息生成如下命令:

go test -coverprofile=coverage.out dirA dirB dirC

调用包文件.package-list ,这是我目前拥有的脚本:

while read package;
do
  go test -coverprofile=coverage.out ./$package
done <.package-list

问题是该脚本执行该go test命令三次:

go test -coverprofile=coverage.out ./dirA
go test -coverprofile=coverage.out ./dirB
go test -coverprofile=coverage.out ./dirC

我该怎么做才能读取文件并生成我需要的命令?

标签: linuxbashshellshscript

解决方案


如果使用bash而不是sh(您都已标记,因此不清楚您的目标是哪个外壳),您可以将文件的行读入数组:

readarray -t packages < .package-list
go test -coverprofile=coverage.out "${packages[@]}"

推荐阅读