এটি হল অটোএক্সপেক্ট কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।
কার্যক্রম:
NAME এর
autoexpect - একটি সেশন দেখার থেকে একটি প্রত্যাশা স্ক্রিপ্ট তৈরি করুন
সাইনোপিসিস
স্বয়ংক্রিয় প্রত্যাশা [ args ] [ কার্যক্রম args... ]
সূচনা
অটোএক্সপেক্ট আপনাকে অন্য প্রোগ্রামের সাথে ইন্টারঅ্যাক্ট করতে দেখে এবং একটি প্রত্যাশা স্ক্রিপ্ট তৈরি করে
আপনার মিথস্ক্রিয়া পুনরুত্পাদন. সরলরেখার স্ক্রিপ্টের জন্য, অটোএক্সপেক্ট যথেষ্ট সময় বাঁচায়
হাতে স্ক্রিপ্ট লেখার উপর। এমনকি যদি আপনি একজন এক্সপেক্ট এক্সপার্ট হন, আপনি এটি খুঁজে পাবেন
মিথস্ক্রিয়াগুলির আরও মনহীন অংশগুলিকে স্বয়ংক্রিয় করতে অটোএক্সপেক্ট ব্যবহার করা সুবিধাজনক। এটাই
স্বয়ংক্রিয় প্রত্যাশিত স্ক্রিপ্টগুলি থেকে লেখার চেয়ে একত্রে কাটা/পেস্ট করা অনেক সহজ
আঁচড় এবং আপনি যদি একজন শিক্ষানবিস হন তবে আপনি কিছুই শিখতে না পারতে পারবেন
কিভাবে অটোএক্সপেক্ট কল করতে হয় তার চেয়ে প্রত্যাশা সম্পর্কে আরও বেশি।
অটোএক্সপেক্ট ব্যবহার করার সবচেয়ে সহজ উপায় হল কোন আর্গুমেন্ট ছাড়াই কমান্ড লাইন থেকে কল করা।
উদাহরণ স্বরূপ:
% স্বয়ংক্রিয় প্রত্যাশা
ডিফল্টরূপে, অটোএক্সপেক্ট আপনার জন্য একটি শেল তৈরি করে। একটি প্রোগ্রামের নাম এবং আর্গুমেন্ট দেওয়া,
স্বয়ংক্রিয় প্রত্যাশিত প্রোগ্রামটি তৈরি করে। উদাহরণ স্বরূপ:
% autoexpect ftp ftp.cme.nist.gov
একবার আপনার উদ্ভাবিত প্রোগ্রাম চালু হলে, স্বাভাবিকভাবে ইন্টারঅ্যাক্ট করুন। আপনি যখন শেল থেকে প্রস্থান করেছেন
(বা আপনি যে প্রোগ্রামটি নির্দিষ্ট করেছেন), autoexpect আপনার জন্য একটি নতুন স্ক্রিপ্ট তৈরি করবে। গতানুগতিক,
autoexpect নতুন স্ক্রিপ্ট "script.exp" এ লেখে। আপনি এটিকে -f পতাকা দিয়ে ওভাররাইড করতে পারেন
একটি নতুন স্ক্রিপ্ট নাম দ্বারা অনুসরণ.
নিম্নলিখিত উদাহরণটি "ftp ftp.cme.nist.gov" চালায় এবং ফলাফল প্রত্যাশা স্ক্রিপ্ট সংরক্ষণ করে
"nist" ফাইলে।
% autoexpect -f nist ftp ftp.cme.nist.gov
এটা বোঝা গুরুত্বপূর্ণ যে autoexpect একটি কার্যকরী স্ক্রিপ্ট গ্যারান্টি দেয় না কারণ
এটি অগত্যা কিছু জিনিস সম্পর্কে অনুমান করতে হবে - এবং মাঝে মাঝে এটি ভুল অনুমান করে।
যাইহোক, সাধারণত এই সমস্যাগুলি সনাক্ত করা এবং সমাধান করা খুব সহজ। সাধারণ সমস্যা
হয়:
· সময়। একটি আশ্চর্যজনকভাবে বড় সংখ্যক প্রোগ্রাম (rn, ksh, zsh, telnet, ইত্যাদি)
এবং ডিভাইসগুলি (যেমন, মডেম) কীস্ট্রোকগুলিকে উপেক্ষা করে যা "খুব দ্রুত" পরে আসে
প্রম্পট আপনি যদি খুঁজে পান আপনার নতুন স্ক্রিপ্ট এক জায়গায় ঝুলে আছে, একটি যোগ করার চেষ্টা করুন
আগের পাঠানোর ঠিক আগে ছোট ঘুম।
আপনি পরিবর্তনশীল ওভাররাইড করে সর্বত্র এই আচরণ জোর করতে পারেন
জেনারেট করা স্ক্রিপ্টের শুরুতে "force_conservative"। এই
"রক্ষণশীল" মোড স্বয়ংক্রিয়ভাবে স্বয়ংক্রিয়ভাবে সংক্ষিপ্তভাবে বিরতি দেয় (এর এক দশমাংশ
একটি সেকেন্ড) প্রতিটি অক্ষর পাঠানোর আগে। এটি আমার পরিচিত প্রতিটি প্রোগ্রামকে শান্ত করে
করুন।
আপনি যদি দ্রুত নিজেকে আশ্বস্ত করতে চান তবে এই রক্ষণশীল মোডটি কার্যকর
যে সমস্যাটি একটি টাইমিং (অথবা যদি আপনি সত্যিই কতটা দ্রুত চিন্তা করেন না
স্ক্রিপ্ট রান)। এই একই মোড দ্বারা স্ক্রিপ্ট প্রজন্মের আগে বাধ্য করা যেতে পারে
-c পতাকা ব্যবহার করে।
সৌভাগ্যবশত, এই টাইমিং স্পট বিরল। উদাহরণস্বরূপ, টেলনেট উপেক্ষা করে
অক্ষরগুলি শুধুমাত্র তার পালানোর ক্রম প্রবেশ করার পরে। মডেম শুধুমাত্র উপেক্ষা
প্রথমবার তাদের সাথে সংযোগ করার পর অবিলম্বে অক্ষর। কয়েক
প্রোগ্রাম সব সময় এই আচরণ প্রদর্শন করে কিন্তু সাধারণত একটি সুইচ আছে
এটা নিষ্ক্রিয় উদাহরণস্বরূপ, rn's -T পতাকা এই আচরণ নিষ্ক্রিয় করে।
নিম্নলিখিত উদাহরণটি রক্ষণশীল মোডে স্বতঃপ্রত্যাশিত শুরু হয়।
autoexpect -c
-C পতাকা রক্ষণশীল মোড টগল করার জন্য একটি কী সংজ্ঞায়িত করে। নিম্নলিখিত উদাহরণ
টগল হিসাবে ^L দিয়ে অটোএক্সপেক্ট (অ-রক্ষণশীল মোডে) শুরু হয়। (মনে রাখবেন যে
^L আক্ষরিকভাবে প্রবেশ করানো হয় - অর্থাৎ, একটি বাস্তব নিয়ন্ত্রণ-L লিখুন)।
অটোএক্সপেক্ট -C ^L
নিম্নলিখিত উদাহরণটি ^L হিসাবে রক্ষণশীল মোডে অটোএক্সপেক্ট শুরু করে
টগল।
অটোএক্সপেক্ট -c -C ^L
· প্রতিধ্বনি। অনেক প্রোগ্রাম ইকো অক্ষর. উদাহরণস্বরূপ, আপনি যদি a তে "more" টাইপ করেন
শেল, অটোএক্সপেক্ট আসলে যা দেখে তা হল:
আপনি 'm' টাইপ করেছেন,
কম্পিউটার টাইপ করেছে 'm',
আপনি 'o' টাইপ করেছেন,
কম্পিউটার 'o' টাইপ করেছে,
আপনি 'r' টাইপ করেছেন,
কম্পিউটার 'r' টাইপ করেছে,
...
প্রোগ্রামের নির্দিষ্ট জ্ঞান ছাড়া, আপনি কিনা তা জানা অসম্ভব
পরবর্তী টাইপ করার আগে প্রতিটি অক্ষর প্রতিধ্বনিত দেখার জন্য অপেক্ষা করছি। অটো এক্সপেক্ট হলে
অক্ষরগুলি প্রতিধ্বনিত হতে দেখে, এটি অনুমান করে যে এটি তাদের সবাইকে একটি গোষ্ঠী হিসাবে পাঠাতে পারে
তারা মূলত যেভাবে আবির্ভূত হয়েছিল সেভাবে তাদের ইন্টারলেভ করার পরিবর্তে। এই তোলে
স্ক্রিপ্ট পড়তে আরো আনন্দদায়ক. যাইহোক, এটা অনুমেয়ভাবে ভুল হতে পারে যদি
প্রতিটি চরিত্রের প্রতিধ্বনি দেখতে আপনাকে সত্যিই অপেক্ষা করতে হয়েছিল।
· পরিবর্তন. অটোএক্সপেক্ট স্ক্রিপ্টের মিথস্ক্রিয়া থেকে প্রতিটি অক্ষর রেকর্ড করে।
এটি কাম্য কারণ এটি আপনাকে বিচার করার ক্ষমতা দেয়
কি গুরুত্বপূর্ণ এবং কি একটি প্যাটার্ন ম্যাচ সঙ্গে প্রতিস্থাপিত করা যেতে পারে.
অন্যদিকে, আপনি যদি এমন কমান্ড ব্যবহার করেন যার আউটপুট রান থেকে রানে আলাদা হয়,
উত্পন্ন স্ক্রিপ্ট সঠিক হতে যাচ্ছে না. উদাহরণস্বরূপ, "তারিখ"
কমান্ড সবসময় বিভিন্ন আউটপুট উত্পাদন করে। তাই date কমান্ড ব্যবহার করে যখন
অটোএক্সপেক্ট চালানো একটি স্ক্রিপ্ট তৈরি করার একটি নিশ্চিত উপায় যা সম্পাদনার প্রয়োজন হবে
এটি কাজ করার জন্য।
-p পতাকা অটোএক্সপেক্টকে "প্রম্পট মোডে" রাখে। এই মোডে, autoexpect হবে
শুধুমাত্র প্রোগ্রাম আউটপুট শেষ লাইনের জন্য দেখুন - যা সাধারণত হয়
শীঘ্র. এটি তারিখ সমস্যা পরিচালনা করে (উপরে দেখুন) এবং বেশিরভাগ অন্যান্য।
নিম্নলিখিত উদাহরণটি প্রম্পট মোডে স্বয়ংক্রিয় প্রত্যাশিত শুরু হয়।
autoexpect -p
-P পতাকা প্রম্পট মোড টগল করার জন্য একটি কী সংজ্ঞায়িত করে। নিম্নলিখিত উদাহরণ শুরু হয়
টগল হিসাবে ^P সহ autoexpect (নন-প্রম্পট মোডে)। উল্লেখ্য যে ^P হল
আক্ষরিক অর্থে প্রবেশ করা হয়েছে - অর্থাৎ, একটি বাস্তব নিয়ন্ত্রণ-পি লিখুন।
অটোএক্সপেক্ট -P ^P
নিম্নলিখিত উদাহরণটি টগল হিসাবে ^P সহ প্রম্পট মোডে অটোএক্সপেক্ট শুরু হয়।
স্বয়ংক্রিয় প্রত্যাশা -p -P ^P
অন্যান্য ফ্ল্যাগস
সার্জারির - শান্ত পতাকা অটোএক্সপেক্ট দ্বারা উত্পাদিত তথ্যমূলক বার্তা নিষ্ক্রিয় করে।
সার্জারির -Q পতাকা একটি উদ্ধৃতি অক্ষরের নাম দেয় যা স্বয়ংক্রিয়ভাবে প্রত্যাশিত অক্ষরগুলি প্রবেশ করতে ব্যবহার করা যেতে পারে
অন্যথায় গ্রাস করবে কারণ সেগুলি টগল হিসাবে ব্যবহৃত হয়।
নিম্নলিখিত উদাহরণটি প্রবেশের একটি উপায় প্রদান করতে ব্যবহৃত উদ্ধৃতি সহ বেশ কয়েকটি পতাকা দেখায়
আক্ষরিকভাবে টগল
অটোএক্সেক্ট -P ^P -C ^L -Q ^Q
শৈলী
এক্সপেক্ট প্রোগ্রামগুলির জন্য একটি "স্টাইল" আছে কিনা আমি জানি না তবে অটোএক্সপেক্ট অবশ্যই উচিত
শৈলী কোন মডেল হিসাবে রাখা হবে না. উদাহরণস্বরূপ, অটোএক্সপেক্ট Expect এর বৈশিষ্ট্যগুলি ব্যবহার করে
যেগুলো বিশেষভাবে কম্পিউটার-জেনারেটেড স্ক্রিপ্টিংয়ের জন্য তৈরি। তাই চেষ্টা করবেন না
বিশ্বস্ততার সাথে এমন স্ক্রিপ্ট লিখুন যেগুলি স্বয়ংক্রিয় প্রত্যাশিত দ্বারা উত্পন্ন হয়েছে। এটি হবে না
দরকারী।
অন্যদিকে, স্বয়ংক্রিয় প্রত্যাশিত স্ক্রিপ্টগুলি কিছু সার্থক জিনিস দেখায়। উদাহরণস্বরূপ, আপনি
টিসিএল স্ক্রিপ্টে ব্যবহার করার জন্য যেকোন স্ট্রিংকে কীভাবে উদ্ধৃত করতে হবে তা দেখতে পারেন কেবল চালানোর মাধ্যমে
স্বয়ংক্রিয় প্রত্যাশার মাধ্যমে স্ট্রিংগুলি।
onworks.net পরিষেবা ব্যবহার করে অনলাইনে অটোএক্সপেক্ট ব্যবহার করুন