我有大约 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
您的代码缺少声明中的do
and 。我相信你想要这样的东西:done
select
select f in *.lst; do
for i in $(cat $f); do
curl "$i"
done
done
这将允许您选择一个文件,然后在所选文件的每一行上运行curl。exit 0
如果希望脚本在选择文件后退出,请在 for 循环后添加一个。