我在下面做了一個腳本。該腳本正在檢查列 A 中的示例 .csv 檔案中列出的每個 URL 的回應代碼。一切都按我的計劃作業,但在檢查所有 URL 后,腳本被凍結。我必須做 ctrl c 組合來阻止它。在檢查所有 URL 后,如何使腳本自動結束運行。
#!/bin/bash
for link in `cat $1` $2;
do
response=`curl --output /dev/null --silent --write-out %{http_code} $link`;
if [ "$response" == "$2" ]; then
echo "$link";
fi
done
uj5u.com熱心網友回復:
您的腳本掛起由于$2在for link行(當它掛起,請檢查ps aux | grep curl你會發現與回應代碼作為最后一個引數的卷曲處理)。此外,for link in `cat $1` $2這不是您應該如何從檔案中讀取和處理行的方式。
假設您的example.csv檔案每行只包含一個 URL 而沒有其他內容(這基本上使它成為一個純文本檔案),此代碼應該執行您想要的操作:
#!/usr/bin/env bash
while read -r link; do
response=$(curl --output /dev/null --silent --write-out %{http_code} "$link")
if [[ "$response" == "$2" ]]; then
echo "$link"
fi
done < "$1"
uj5u.com熱心網友回復:
逐字復制您的代碼并偽造一個測驗檔案,其中包含幾個由空格分隔的 url 進行測驗,它確實掛了。但是,$2從 末尾洗掉for允許腳本完成。
for link in `cat $1`;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/334796.html
