我有一个pages.txt
个文件,里面有pages.txt
个URL.我想一个接一个地判断它们,第一个问题就失败了.这就是我正在做的:
cat pages.txt | xargs -n 1 curl --silent \
--output /dev/null --write-out '%{url_effective}: %{http_code}\n'; echo $?
退出代码是1
,但我只有在整个文件完成后才能看到它.如何在第一个问题上更早地停止?
我有一个pages.txt
个文件,里面有pages.txt
个URL.我想一个接一个地判断它们,第一个问题就失败了.这就是我正在做的:
cat pages.txt | xargs -n 1 curl --silent \
--output /dev/null --write-out '%{url_effective}: %{http_code}\n'; echo $?
退出代码是1
,但我只有在整个文件完成后才能看到它.如何在第一个问题上更早地停止?
xargs -n 1 sh -c '<your_command> $0 || exit 255' < input
xargs -n 1 sh -c 'curl --silent --output /dev/null \
--write-out "%{url_effective}: %{http_code}\n" $0 || exit 255' < pages.txt
对于pages.txt
中的每个URL,逐一执行sh -c 'curl ... $0 || exit 255'
(-n 1
),如果命令失败,则强制退出255
.
从man xargs
开始:
如果任何命令调用以255的状态退出,xargs将立即停止,而不读取任何进一步的输入.发生这种情况时,会在stderr上发出错误消息.