Wie zu stoppen xargs beim ersten Fehler?
Ich habe eine pages.txt
Datei mit 100 URLs innen. Ich will überprüfen Sie Sie eins nach dem anderen und nicht auf das erste problem. Dies ist, was ich Tue:
cat pages.txt | xargs -n 1 curl --silent \
--output /dev/null --write-out '%{url_effective}: %{http_code}\n'; echo $?
Exit-code 1
, aber ich sehe es nur, wenn die gesamte Datei ist fertig. Wie halt früher auf das erste problem?
- Tun Sie wirklich brauchen, es zu tun, einen Befehl oder ein Skript, ok?
- Ich will
xargs
wegen seiner-P
option - Wenn Sie auf der Suche, um es parallel auszuführen, können Sie auch wollen, zu untersuchen, GNU
parallel
... Es hat viel mehr Flexibilität alsxargs
Vereinfachtes Modell,...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Allgemeine Methode
Konkreten Fall
Erklärung
Für jede URL in
pages.txt
führtsh -c 'curl ... $0 || exit 255'
eins nach dem anderen (-n 1
) zwingen, zu beenden mit255
wenn der Befehl fehlschlägt.Vom
man xargs
:Habe ich noch keinen Weg gefunden, das zu tun, was Sie für Fragen mit xargs, aber eine Schleife mit Lesen ist es vielleicht, was Sie suchen.
xargs
hat eine-P
option für die