Bash

如何使用 select 從包含列表的 x 文件中進行選擇,這些文件需要針對執行一組命令,在本例中為 curl

  • August 12, 2019

我有大約 100 個用於健康檢查的 URL 列表(200、300,400,500),但無法弄清楚提出問題的術語。提前,我道歉。

我想使用一個列表來選擇包含 URLS 的已辨識列表文件,然後對其執行 curl 以獲得我的結果。目前,我很難過。

如果我隱式呼叫文件,我可以讓事情正常進行。如果我在要從中選擇的文件列表中再次使用選擇,我可以獲取該文件並對結果進行簡單的“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

您的程式碼缺少一個dodone您的select聲明。我相信你想要這樣的東西:

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

這將允許您選擇一個文件,然後在所選文件的每一行上執行 curl。exit 0如果希望在您選擇文件後退出腳本,請在 for 循環之後添加一個。

引用自:https://unix.stackexchange.com/questions/535246