【发布时间】:2021-10-21 17:39:02
【问题描述】:
我在下面做了一个脚本。该脚本正在检查列 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
【问题讨论】:
-
你是如何运行脚本的(确切的命令行)?
example.csv的内容是什么?没有更多细节,这是不可重现的。 -
不,它没有检查 A 列中的所有内容。它遍历文件中的每个单词,用空格分隔。这里没有处理 csv 或列。
-
我运行脚本“bash {my_script.sh} {example.csv} {response_code}”。在 {response_code} 中,我输入了检查 200、301、404 等所需的响应代码。example.csv 在 A 列中包含 URL 地址。每一行包含一个 URL 地址。我以包含我指示的响应代码的地址列表的形式获得结果。只有脚本在检查列表中的所有地址时不会停止。
标签: bash for-loop if-statement terminal script