উইজেট নীরব, তবে এটি ত্রুটির বার্তা প্রদর্শন করে


11

আমি উইজেটের সাহায্যে একটি ফাইল ডাউনলোড করতে চাই , তবে সাধারণ ইউনিক্স দর্শনের অনুসারে ডাউনলোডটি সফল হলে কোনও কিছুই আউটপুট করতে চাই না । তবে ডাউনলোড যদি ব্যর্থ হয় তবে আমি একটি ত্রুটি বার্তা চাই।

-qবিকল্প ত্রুটি বার্তা সহ সব আউটপুট, শুষে নেবে। আমি যদি এর -nvপরিবর্তে বিকল্প অন্তর্ভুক্ত করি , তবে উইজেট এখনও মুদ্রণ করবে (স্টাডারে):

2012-05-03 16:17:05 URL:http://example.net/ [2966] -> "index.html" [1]

আমি কীভাবে এমনকি সেই আউটপুটটি সরিয়ে ফেলব, তবে তবুও ত্রুটির বার্তা পাব?

উত্তর:


5

curlপরিবর্তে চেষ্টা করুন:

curl -fsS $url -o $file

দীর্ঘ সংস্করণ:

curl --fail --silent --show-error $url --output $file

জিনোম ব্যবহারকারীরা জিভিএফ ব্যবহার করতে পারেন:

gvfs-cp $url $file

1
দুর্ভাগ্যক্রমে, কার্ল সমস্ত ডিবিয়ান সিস্টেমে ইনস্টল করা হয় না।
ফিহাগ

যুক্ত --failকরছ কেন ? আপনি স্টাডারের কাছে যেতে চান এমন কোনও কিছু হিসাবে এইচটিটিপি ত্রুটিগুলি বিবেচনা করা কি বোধগম্য হবে না?
গিলাদ মায়ানী

এটি ঠিক কী সংমিশ্রণ --failএবং কাজ --show-errorকরে।
user1686

4

আপনি আরও ভাল উত্তর না পেতে পারলে খোঁড়া হ্যাক:

wget {url} 2>/tmp/err.log || cat /tmp/err.log; rm /tmp/err.log

(দ্য 2> /tmp/err.log স্ট্ডারকে একটি টিএমপি ফাইলে পুনঃনির্দেশ করে; উইজেট যদি 0 [সাফল্য] দেয়, || শর্ট সার্কিট অন্যথায় এটি ত্রুটি লগের মানগুলি মুদ্রণ করবে)


+1 আমি মিস করেছি যে সমস্ত আউটপুট স্ট্যাডারে চলেছে; আমি আমার স্টাডাউটকে / dev / নাল থেকে পুনঃনির্দেশের উত্তরটি মুছে ফেলেছি।
চিপনার

5
এটি কাজ করে, কিন্তু এটি খোঁড়াerror_log=$(wget -nv example.net 2>&1) || echo $error_logএটি একটি আরও মার্জিত সমাধান, তবে এখনও আনাড়ি।
ফিহাগ

1

যেহেতু বর্তমানে সমস্ত উইজেট আউটপুট স্ট্যাডারে যায় তাই মনে হয় এই 'মার্জিত উপায়' সমাধান করতে আপনাকে উইজেটের উত্সটি প্যাচ করতে হবে।

উইজেট উত্স নকশা ত্রুটি বার্তা নয় বরং ত্রুটির বার্তার মধ্যে একটি সাধারণ বিভাজনের চেয়ে বার্তাগুলির মধ্যে ভার্বোসিটি স্তরের পার্থক্য নির্দেশ করে।

এই http://savannah.gnu.org/bugs/?33839 সম্পর্কে একটি মুক্ত ত্রুটি রয়েছে, এবং আরও কিছু পুরানো আলোচনা রয়েছে। এখানে একটি প্রস্তাবিত প্যাচ http://www.mail-archive.com/wget%40sunsite.dk/msg03289.html এবং এখানে এই http://www.mail-archive.com/wget সম্পর্কে হ্রভোজ নিক্সিকের একটি উত্তর রয়েছে % 40sunsite.dk / msg03330.html

তা ছাড়া ফুনের কম মার্জিত সমাধানের জন্য আপনি একটি মন্তব্যে প্রস্তাবিত ভাল সমাধান অবশ্যই রয়েছে।


0

আপনি আউটপুটটি পাইপ করতে grepএবং সাফল্যের বার্তাটি ফিল্টারও করতে পারেন।

এই কাজ করা উচিত:

wget ... -nv 2>&1 | grep -Pv "^\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d URL:.*\[\d+\] -> ".*" \[\d+\]$"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.