प्रगति बार नहीं दिखाने के लिए मुझे CURL कैसे मिलेगा?


562

मैं एक स्क्रिप्ट में cURL का उपयोग करने की कोशिश कर रहा हूं और इसे प्रगति बार नहीं दिखाने के लिए प्राप्त कर रहा हूं ।

मैं कोशिश की है -s, -silent, -S, और -quietविकल्प है, लेकिन उनमें से कोई भी काम करते हैं।

यहाँ एक विशिष्ट कमांड मैंने कोशिश की है:

curl -s http://google.com > temp.html

मुझे केवल प्रगति पट्टी मिलती है जब इसे एक फ़ाइल पर धकेल दिया जाता है, तो curl -s http://google.comएक प्रगति पट्टी नहीं होती है, लेकिन curl -s http://google.com > temp.htmlहोती है।


12
curl -s http://google.comमेरे लिए यहाँ पर चुप है। आप कर्ल और लिनक्स के किस संस्करण पर हैं?
एड्रियन पेट्रेस्क्यू

-s कर्ल में मेरे लिए ठीक काम करता है 7.21.0 (i686-pc-linux-gnu) libcurl / 7.21.0 OpenSSL / 0.9.8o zlib / 1.2.3.4 libidn / 1.18 और कर्ल 7.19.5 (i386-apple-darwin9)। 7.0) libcurl / 7.19.5 zlib / 1.2.3 लगता है कि यू को आपके कर्ल को अपग्रेड करने की आवश्यकता है
derevo

मैंने इसे Fedora 15, और Mac OSX 10.7.1 पर आज़माया है। इसके अलावा, मुझे केवल प्रगति पट्टी मिलती है जब इसे एक फ़ाइल पर धकेल दिया जाता है, तो कर्ल -s google.com में प्रगति पट्टी नहीं होती है, लेकिन कर्ल -s google.com > temp.html करता है।
adammenges

1
जो कोई भी इंस्टॉल किए गए संस्करण का पता लगाना चाहता है curlऔर libcurldpkg -l | grep curl
दिमित्री के

1
इस तरह के एक मामले में, चलाने man curlकर्ल के मैनुअल पृष्ठ दिखाने के लिए, तो हिट /progressया /hide progressया stopया क्वेरी खोज आप क्या चाहते हैं पाने के लिए जो कुछ भी। तब आप किसी सुझाव पर पहुँच सकते हैं जैसे कि chmac सुझाए गए।
kenju

जवाबों:


560
curl -s http://google.com > temp.html

Ubuntu 9.10 (नो प्रोग्रेस बार) पर कर्ल संस्करण 7.19.5 के लिए काम करता है। लेकिन अगर किसी कारण से जो आपके प्लेटफॉर्म पर काम नहीं करता है, तो आप हमेशा / dev / null में stderr को पुनर्निर्देशित कर सकते हैं:

curl  http://google.com 2>/dev/null > temp.html

31
मैंने उसके बारे में सोचा होता। यह त्रुटि संदेशों को भी छिपाएगा, हालाँकि।
टॉम ज़िक

1
मेरे मामले में, इसका उपयोग करना ठीक है / dev / null।
adammenges

अच्छा - यह बहुत अच्छा काम करता है। मुझे सेंटोस 6.3 पर समस्या थी, लेकिन अन्य डिस्ट्रोस पर नहीं - विचित्र, लेकिन सरल आसान वर्कअराउंड - thx!
रॉस

वैसे, नीचे दिए लिंक के बारे में देखें 2>/dev/nullअगर आपको नहीं पता: stackoverflow.com/questions/10508843/what-is-dev-null-21
kenju

Ubuntu 14 होस्ट पर कर्ल की स्थापना के लिए मैन पेज के अनुसार, -sकर्ल को "प्रगति मीटर या त्रुटि संदेश नहीं दिखाएगा "। (मैंने यह देखने के लिए स्रोत कोड का परीक्षण या पढ़ने की कोशिश नहीं की है कि क्या यह वास्तव में सच है।)
डेविड विनीकी

535

उबंटू में कर्ल संस्करण 7.22.0 और ओएसएक्स पर 7.24.0 पर प्रगति दिखाने के लिए नहीं बल्कि त्रुटियों को दिखाने के लिए समाधान दोनों का उपयोग करना है -s( --silent) और -S( --show-errorजैसे):

curl -sS http://google.com > temp.html

यह मेरे लिए टर्मिनल पर रीडायरेक्ट आउटपुट > /some/file, पाइप्ड आउटपुट | lessऔर आउटपुट दोनों के लिए काम करता है।


3
मेरे 7.35 का उपयोग करने के लिए -sS प्रगति मीटर को समाप्त कर देता है, लेकिन ALSO सामान्य रूप से stdout को लिखी गई जानकारी को समाप्त कर देता है - जिसकी मुझे आवश्यकता है, क्योंकि इसमें फ़ाइल नाम के रूप में डिस्क (डिफरेंट) फाइलिड के बजाय डिस्क में लिखा गया है जिसे अनुरोध में उपयोग किया जाना चाहिए। केवल प्रगति मीटर को हराने के लिए कोई रास्ता नहीं लगता है!
जैक

48

मैंने पाया कि कर्ल 7.18.2 के साथ डाउनलोड प्रगति बार के साथ छिपा नहीं है:

curl -s http://google.com > temp.html

लेकिन यह साथ है:

curl -ss http://google.com > temp.html

6

यकीन से नहीं कह सकता कि यह ऐसा क्यों कर रहा है। इसके बजाय आउटपुट फ़ाइल को सेट करने -sके -oविकल्प के साथ प्रयास करें >


0

MacOS 10.13.6 (हाई सिएरा) पर, '-ss' विकल्प काम करता है। यह विशेष रूप से perl के अंदर उपयोगी है, जैसे कमांड curl -ss --get {someURL}, जो स्पष्ट रूप से किसी भी LWP या HTTP रैपर की तुलना में पूरी तरह से अधिक सरल है, केवल एक वेबसाइट या वेबपेज की सामग्री प्राप्त करने के लिए।


-1

कुछ समय पहले jdk के विशिष्ट संस्करणों के उदाहरण के लिए खोज करने के लिए एक सरल स्क्रिप्ट लिखी गई थी:

#!/bin/bash
REPO_TAG_URL=$1

SEARCH=`curl -s $REPO_TAG_URL`
NEXT_PAGE=`echo $SEARCH | jq -r .next`

echo $SEARCH | jq '.results[].name'

while [[ $NEXT_PAGE != 'null' ]]; do
    SEARCH=`curl -s $NEXT_PAGE`
    NEXT_PAGE=`echo $SEARCH | jq -r .next`
    echo $SEARCH | jq '.results[].name'
done

echo "Thats all folks"

आप इसे इस तरह उपयोग करते हैं: ./script.sh https://registry.hub.docker.com/v2/repositories/library/tomcat/tags/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.