如何使用 select 从包含列表的 x 文件中进行选择,需要运行一组命令,在本例中为curl

如何使用 select 从包含列表的 x 文件中进行选择,需要运行一组命令,在本例中为curl

我有大约 100 个用于健康检查的 URL 列表(200, 300,400,500),但无法弄清楚提出问题的术语。在此先向您道歉。

我想使用一个列表来选择包含 URL 的已识别列表文件,然后对其运行curl 以获得结果。目前,我很困惑。

如果我隐式调用该文件,我就可以让事情开始工作。如果我对可供选择的文件列表使用 select,我可以获取该文件并对结果执行简单的“cat”操作,并成功获取其中的 URL。

我似乎无法进行选择,将文件放入其变量中,然后进入循环以成功运行所选文件中的这些项目。

我很尴尬,因为它把我的头发弄乱了。

作品

select f in *.lst; do echo $f
done

不以任何方式或格式工作

select f in *.lst;
for i in (cat $f); do curl $i
done

 bash -x ./test.sh 
+ select f in '*.lst'
1) availability_health_check.lst      3) facility_service_health_check.lst
2) explorer_health_check.lst          4) mobile_service_health_check.lst
#? 1
+ echo availability_health_check.lst
availability_health_check.lst

答案1

您的代码缺少声明中的doand 。我相信你想要这样的东西:doneselect

select f in *.lst; do
        for i in $(cat $f); do
                curl "$i"
        done
done

这将允许您选择一个文件,然后在所选文件的每一行上运行curl。exit 0如果希望脚本在选择文件后退出,请在 for 循环后添加一个。

相关内容