ইন্টারনেট সংযোগের জন্য যাচাই করার জন্য কেন আমার কোড ব্যর্থ হচ্ছে?


1

আমি একটি স্ক্রিপ্ট সম্পাদনা করার চেষ্টা করছি যাতে এটির অন্যান্য কমান্ডগুলি কার্যকর করার আগে এটি কোনও ইন্টারনেট সংযোগের জন্য পরীক্ষা করে দেখবে, তবে সমস্যাটি হ'ল আমি ফলাফলটি যা চেষ্টা করি তা নয় (অনলাইনে বা না) উত্তরটি সর্বদা 0 প্রদান করেছিলাম আমি নীচে কোডটি নিয়ে এসেছি এই আশায় যে কেউ এটির দিকে নজর দিতে পারে এবং আমার দুর্দশা কীভাবে সমাধান করা যায় সে সম্পর্কে কিছু ধারণা দিতে পারে। আমি একই ফলাফল সহ একাধিক উপায়ে চেষ্টা করেছি। ধন্যবাদ প্রয়োজন হলে আমি কোড বা আমার কম্পিউটারের আরও তথ্য সরবরাহ করতে পারি।

[রুট @ মারক্যাডেবেডজ মাইওয়্যারলেস কার্ড] # টেস্ট = $ (পিং -c 1 74.125.21.147) [$ টেস্ট> / দেব / নাল 2> & 1] && প্রতিধ্বনি 1 || প্রতিধ্বনি 0

0


কি ওএস? লিনাক্স?
মোয়াব

হ্যাঁ: লিনাক্স 4.4.8-300.fc23.x86_64 জিএনইউ / লিনাক্স
Purpe_Fedora

উত্তর:


1

সমস্যাটি হ'ল পিন-সি 1 এর ফলাফলটি একটি সংখ্যা নয় - ফলাফলটি তার স্ট্রিং - এবং তারপরে আপনি এটি খালি বা না তা পরীক্ষা করছেন - তবে এটি কখনও নাল নয়, কারণ এটি নির্বিশেষে ফিরে রিপোর্ট করবে ব্যর্থতা.

আমি প্রায় খেলেছি, এবং এটি সামান্য সংশোধন করেছি - এটি কম মার্জিত, তবে আমার পক্ষে কাজ করে:

 TEST=$(ping -c 1 74.125.21.14|wc -l);  [ $TEST -gt 5 2>&1 ] && echo 1 || echo 0

এখানে ধারণা হ'ল পরীক্ষাটি এখন লাইনের সংখ্যা গণনা করে। 5 ফলাফলের লাইনগুলি একটি ব্যর্থতা নির্দেশ করে, 6 বা তার বেশি একটি পাসকে নির্দেশ করে। আপনি পিংসের সংখ্যা এবং আপনার গণনা করা লাইনের সংখ্যা বাড়িয়ে এই আরও দৃ make় করতে পারেন যা প্যাকেটের ক্ষতির কিছু স্তরের জন্যও দায়ী হতে পারে।

অন্যান্য বিকল্প রয়েছে - উদাহরণস্বরূপ, লাইনের সংখ্যা গণনা করার পরিবর্তে, আপনি এর মতো কিছু করতে পারেন লেজ -2 | মাথা -1 | প্রাপ্ত প্যাকেটের সংখ্যা পেতে -f4 কাটুন।


পরামর্শের জন্য দুর্দান্ত ধন্যবাদ। আমি সংশোধিত কোডটি চেষ্টা করেছি এবং এটি সত্যই কার্যকর হয়েছে। হ্যাঁ আমি মার্জিতের সন্ধান করছি না কারণ এটি আমার জন্য ব্যক্তিগত স্ক্রিপ্টে চলেছে। :) :)
Purpe_Fedora

আরে যেহেতু এটি কাজ করে, ইন্টারনেট না থাকলে স্ক্রিপ্ট থেকে বেরিয়ে আসা কি সম্ভব? আমি একটি পদ্ধতি চেষ্টা করেছিলাম কিন্তু আমার স্ক্রিনটি ইন্টারনেট সংযোগ থাকলেও এটি থেকে বেরিয়ে যেতে পেরেছি? #Check internet availablity TEST=$(ping -c 1 74.125.21.14|wc -l) [ $TEST -gt 5 2>&1 ] || exit
Purpe_Fedora

বরং তারপরে [$ টেস্ট ... ব্যবহার করুন কেন [কেন into টেস্ট-জিটি 5] ততক্ষণ এবং অন্য বিবৃতি দিয়ে এটিকে রূপান্তর করবেন না? বিকল্পভাবে, স্ক্রিপ্টটি 2 ভাগে বিভক্ত করুন এবং দ্বিতীয় স্ক্রিপ্ট কল করুন
তারপরেই

উম ভাল আমি এটিও চেষ্টা করেছি, আমি বিশ্বাস করি, অন্য স্ক্রিপ্টে:#Check internet availablity TEST=$(ping -c 1 74.125.21.14|wc -l) if [ $TEST -gt 5 2>&1 ] then sudo dnf install gcc kernel-devel binutils cpp glibc-devel glibc-headers isl kernel kernel-headers libmpc else echo "No Internet Connection Available! Installing RPMs manuely." arr=(*.rpm) for (( i=0; i<${#arr[@]}; i++ )); do echo " ${arr[$i]} " dnf -y install ${arr[$i]} done #exit is commented out because it always closed my script #exit fi;
Purpe_Fedora

দয়া করে এটিকে অন্য প্রশ্ন হিসাবে পোস্ট করুন (এবং লিঙ্কটি দিয়ে মন্তব্য করুন) যাতে আমি আরও সহায়তা করতে পারি, বিন্যাস ছাড়াই এটি কঠিন and এবং এটি সত্যিই আলাদা সমস্যা। এছাড়াও, আপনি কি স্ক্রিপ্টটি সংজ্ঞায়িত করতে পারেন - আপনি কি কমান্ড লাইন থেকে পুরো জিনিসটি চালানোর চেষ্টা করছেন, বা আপনি কী বোঝাতে চেয়েছেন) প্রস্থানটি মন্তব্য করা হয়েছে কারণ এটি আমার স্ক্রিপ্ট সবসময় বন্ধ করে দেয়)
ডেভিডগো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.