Yanıtlar:
-s
İlerleme ölçeri kaldırmak için (sessiz) seçeneğini ekleyin , ardından yanıt gövdesiyle aynı fd'de ayrıntılı çıktı almak için stderr'i stdout'a yönlendirin
curl -vs google.com 2>&1 | less
2>&1
.
URL'nizin içinde muhtemelen ve işaretleri vardır. Ben de bu problemi yaşadım ve URL'min ve işaretleriyle dolu olduğunu fark ettim (geçirilen CGI değişkenlerinden) ve bu nedenle her şey tuhaf bir şekilde arka plana gönderildi ve bu nedenle düzgün bir şekilde yeniden yönlendirilmiyordu. URL'yi tırnak içine alırsanız, onu düzeltir.
Yukarıdaki cevap benim için işe yaramadı, sonunda şu sözdizimi oldu:
curl https://${URL} &> /dev/stdout | tee -a ${LOG}
tee çıktıyı ekrana koyar ama aynı zamanda günlüğüme ekler.
&> /dev/stdout
kesinlikle eksik
Bir dosyada çıktıya ihtiyacınız varsa, bir yeniden yönlendirme kullanabilirsiniz:
curl https://vi.stackexchange.com/ -vs >curl-output.txt 2>&1
Lütfen >curl-output.txt
ve bash'ın yeniden yönlendirme davranışı2>&1
nedeniyle çalışmayacağından emin olun .
Ben de aynı şeyi buldum: curl kendi başına STDOUT'a yazdırırdı, ancak başka bir programa aktarılamaz.
İlk başta, ilk olarak çıktıyı yankılamak için xargs kullanarak çözdüğümü düşündüm:
curl -s ... <url> | xargs -0 echo | ...
Ancak yorumlarda da belirtildiği gibi, xargs parçası olmadan da çalışır, bu nedenle -s
(sessiz mod) STDOUT'a gereksiz ilerleme çıktısını önlemenin anahtarıdır:
curl -s ... <url> | perl -ne 'print $1 if /<sometag>([^<]+)/'
Yukarıdaki örnek <sometag>
, curl ifadesinin XML çıktısından basit içeriği (gömülü etiket içermeyen) alır.
Sadece 2 sentim. Aşağıdaki komut, daha önce cevaplandığı gibi hile yapmalıdır
curl -vs google.com 2>&1
Ancak çıktıyı bir dosyaya almanız gerekiyorsa,
curl -vs google.com > out.txt 2>&1
çalışmalı.
Bu basit örnek, curl çıktısının nasıl yakalanacağını ve bir bash betiğinde nasıl kullanılacağını gösterir.
function main
{
\curl -vs 'http://google.com' 2>&1
# note: add -o /tmp/ignore.png if you want to ignore binary output, by saving it to a file.
}
# capture output of curl to a variable
OUT=$(main)
# search output for something using grep.
echo
echo "$OUT" | grep 302
echo
echo "$OUT" | grep title
curl -v url 2>&1
, hatalar benim için standart çıktıya doğru bir şekilde yeniden yönlendiriliyor.