ত্রুটিগুলি মুদ্রণের জন্য উইজেট করুন, তবে অন্যথায় কিছুই নয়


27

আমি কীভাবে উইজেট প্রিন্ট ত্রুটি থাকতে পারি, তবে অন্যথায় কিছুই না?

ডিফল্ট আচরণে, এটি একটি অগ্রগতি বার এবং প্রচুর স্টাফ দেখায়।

--No-verbose সংস্করণে এখনও ডাউনলোড করা ফাইলের জন্য এক লাইন প্রিন্ট করে, এটি আমি চাই না।

--Quiet বিকল্পটি একেবারে শান্ত হয়ে যায়, এমনকি কোনও ত্রুটির ক্ষেত্রেও এটি কোনও কিছু মুদ্রণ করে না।

এমন কোনও মোড আছে যেখানে এটি ত্রুটিগুলি মুদ্রণ করে, তবে কিছুই না?

উত্তর:


17

এই প্রশ্নে খুব ভাল উত্তর আছে, তাদের অবশ্যই পরীক্ষা করে দেখুন, তবে আমি যা করেছি তা হ'ল:

wget [wget options] 2>&1 | grep -i "failed\|error"

16.04 উবুন্টু বাশ দিয়ে আমার পক্ষে এটিই একমাত্র উত্তর।
লিগামার

17

প্রতিটি ত্রুটি দেখতে কেমন হবে তা অনুমান করে কার্ল ব্যবহার করুন।

[wizard@laptop ~] curl -s -S http://www.google.coccm/ > /dev/null && echo "TRUE"
curl: (6) Couldn't resolve host 'www.google.coccm'
[wizard@laptop ~]$ curl -s -S http://www.google.com/ > /dev/null && echo "TRUE"
TRUE

-s / - নীরব

Silent mode. Don’t show progress meter or error messages. Makes Curl mute.

-S / - প্রদর্শনী-ত্রুটি

When used with -s it makes curl show error message if it fails.

এবং যদি আপনার কোনও কারণে স্টাডাউটে স্ট্যাডার দরকার হয়।

curl -s -S http://www.google.coccm/  2>&1 1> /dev/null

1
দুর্ভাগ্যক্রমে এটি আদর্শ এইচটিটিপি ত্রুটিগুলি পরিচালনা করে না (উদাহরণস্বরূপ, 404 ত্রুটিগুলি এভাবে চাপা দেওয়া হয়), যেখানে হ্যাকি উইজেট পদ্ধতিটি করে।
প্রক্রিয়া 91

ডাউনভোট: যদিও আপনার পরামর্শটি প্রশংসনীয় তবে এটি প্রশ্নের উত্তর দেয় না।
স্টিফান রিখটার

অ্যাড -f / - সার্ভার কোনও ত্রুটি কোড ফেরত দেয় তবে ত্রুটি বার্তা প্রদর্শন করতে ব্যর্থ হয় (উদাহরণস্বরূপ 404)
হন্টভরি লেভেন্ত

এটি একটি দুর্দান্ত উত্তর হতে পারে যদি, প্রশ্নটি কার্ল সম্পর্কে ছিল বা কার্লের উইজেটের সাথে বৈশিষ্ট্য সমতা ছিল। দুর্ভাগ্যক্রমে উভয় ক্ষেত্রেই নয় ..
dfc

4

আমি এর জন্য কোনও বিকল্প দেখতে পাচ্ছি না। ত্রুটিটি কী তা আপনার জানা দরকার, বা এটি ঘটে থাকলে ঠিক? যদি আপনার কেবল ত্রুটি ছিল কিনা তা জানতে প্রয়োজন হয় তবে আপনি প্রস্থান স্থিতিটি ব্যবহার করতে পারেন।

if ! wget -o /dev/null www.google.com/flasfsdfsdf; then
    echo 'Oops!'
fi

অথবা হতে পারে:

if ! wget -o logfile www.google.com/flasfsdfsdf; then
    cat logfile
fi

আপনি অভিনব পেতে চাইলে আপনি বিড়ালটিকে গ্রেপ কমান্ডে পরিবর্তন করতে পারেন ...


3
আরও সহজ উপায়: উইজেট -ও লগফাইলে <url> || বিড়াল
লগফাইলে

ত্রুটি বার্তা প্রদর্শন করা ছাড়াও আপনি সম্ভবত ত্রুটিপথে বাইরে বেরিয়ে আসতে বা ভিন্ন কিছু করতে চান বলে আরও সহজ উপায়টি আরও খারাপ।
স্যাম ওয়াটকিন্স

2

এতে স্ট্যান্ডার্ড আউটপুট পুনর্নির্দেশ করুন /dev/null, তবে ত্রুটির আউটপুট আপনার শেলের পছন্দ অনুযায়ী রাখুন।

ব্যাশে এটি হবে:

wget [wget options] > /dev/null

সম্পাদনা: তাই wgetদুর্ব্যবহার। সমস্ত ত্রুটিগুলির মধ্যে যদি "ত্রুটি" শব্দটি থাকে তবে আপনি এটিতে পাইপ করতে পারেনgrep

wget [wget options] 2>&1 | grep -i "error"

উইজেট স্টাডারের কাছে সমস্ত কিছু প্রেরণ করে বলে মনে হচ্ছে।
pupeno

আমি grepকেবল আউটপুট ত্রুটিগুলি ব্যবহার করে আরেকটি বিকল্প যুক্ত করেছি
বেন এস

stderrসাহায্য ছাড়া পাইপ মাধ্যমে যেতে না।
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

1
শেষ পর্যন্ত আমি উইজেট [উইজেট বিকল্পগুলি] 2> & 1 | ব্যবহার করেছি grep -i "ব্যর্থ \ | ত্রুটি"
pupeno

1

যেহেতু wgetসমস্ত বার্তাগুলি চালু করে stderr, আপনি এটি গ্রেপ করতে পাইপের আগে আপনাকে পুনঃনির্দেশ ব্যবহার করতে হবে:

wget [options] 2>&1 | grep "^wget:"

এটি ধরে নিয়েছে যে wget"ত্রুটি:" দিয়ে ত্রুটিযুক্ত রেখাগুলি শুরু হয়।


1
OUT=`wget --no-verbose -O /tmp/a http://example.com/ 2>&1` || echo $OUT

কাজ করে। তবে এটি সর্বদা আউটপুট ফাইলকে ছাঁটাই করে, যা আপনি চাইবেন বা নাও চান।

কার্ল ভাল:

curl --fail --silent --show-error -o /tmp/a http://example.com

ত্রুটির ক্ষেত্রে এটি আউটপুট ফাইলটি পরিবর্তন করে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.