我有一个pages.txt包含100个URL 的文件.我想逐一检查它们并在第一个问题上失败.这就是我正在做的事情:
cat pages.txt | xargs -n 1 curl --silent \
--output /dev/null --write-out '%{url_effective}: %{http_code}\n'; echo $?
Run Code Online (Sandbox Code Playgroud)
退出代码是1,但我只在整个文件完成时看到它.如何提前停止,关于第一个问题?
who*_*oan 44
xargs -n 1 sh -c '<your_command> $0 || exit 255' < input
Run Code Online (Sandbox Code Playgroud)
xargs -n 1 sh -c 'curl --silent --output /dev/null \
--write-out "%{url_effective}: %{http_code}\n" $0 || exit 255' < pages.txt
Run Code Online (Sandbox Code Playgroud)
对于每个URL pages.txt,如果命令失败sh -c 'curl ... $0 || exit 255',逐个执行(-n 1)强制退出255.
来自man xargs:
如果命令的任何调用以状态255退出,则xargs将立即停止而不读取任何进一步的输入.发生这种情况时,会在stderr上发出错误消息.