আশা করুন - ক্লাউডে অনলাইন

আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানোর জন্য এই কমান্ডটি আশা করা যায়।

কার্যক্রম:

NAME এর


প্রত্যাশা করুন - ইন্টারেক্টিভ প্রোগ্রামগুলির সাথে প্রোগ্রামযুক্ত সংলাপ, সংস্করণ 5

সাইনোপিসিস


আশা করা [ -dDinN ] [ -c cmds ] [ -[f|b] ] cmdfile ] [ args ]

সূচনা


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

প্রত্যাশা এর মিশ্রণ আশা করা এবং Tk. এটা ঠিক মত আচরণ করে আশা করা এবং Tk's কামনা. আশা করা
সরাসরি C বা C++ (অর্থাৎ Tcl ছাড়া) ব্যবহার করা যেতে পারে। দেখা libexpect(3).

নাম "প্রত্যাশা" এর ধারণা থেকে এসেছে পাঠান/প্রত্যাশী uucp, kermit দ্বারা জনপ্রিয় সিকোয়েন্স
এবং অন্যান্য মডেম নিয়ন্ত্রণ প্রোগ্রাম। তবে uucp এর বিপরীতে, আশা করা সাধারণীকরণ করা হয় যাতে এটি
যে কোনো প্রোগ্রাম এবং টাস্ক মাথায় রেখে ব্যবহারকারী-স্তরের কমান্ড হিসাবে চালানো যেতে পারে। আশা করা আসলে করতে পারেন
একই সময়ে বেশ কয়েকটি প্রোগ্রামের সাথে কথা বলুন।

উদাহরণস্বরূপ, এখানে কিছু জিনিস আছে আশা করা পারব:

· আপনার কম্পিউটার আপনাকে আবার ডায়াল করুন, যাতে আপনি অর্থ প্রদান ছাড়াই লগইন করতে পারেন
কল.

· একটি খেলা শুরু করুন (যেমন, দুর্বৃত্ত) এবং যদি সর্বোত্তম কনফিগারেশন উপস্থিত না হয়,
এটি পুনরায় চালু করুন (পুনরায়) এটি না হওয়া পর্যন্ত, তারপরে নিয়ন্ত্রণ আপনার হাতে হস্তান্তর করুন।

fsck চালান এবং এর প্রশ্নের উত্তরে "হ্যাঁ", "না" উত্তর দিন বা নিয়ন্ত্রণ দিন
পূর্বনির্ধারিত মানদণ্ডের ভিত্তিতে আপনার কাছে ফিরে আসছি।

· অন্য নেটওয়ার্ক বা BBS এর সাথে সংযোগ করুন (যেমন, MCI Mail, CompuServe) এবং
স্বয়ংক্রিয়ভাবে আপনার মেল পুনরুদ্ধার করুন যাতে এটি মনে হয় যেন এটি আসল
আপনার স্থানীয় সিস্টেমে পাঠানো হয়েছে।

পরিবেশের ভেরিয়েবল, বর্তমান ডিরেক্টরি বা যেকোনো ধরনের তথ্য বহন করুন
rlogin, টেলনেট, টিপ, su, chgrp, ইত্যাদি জুড়ে।

শেল কেন এই কাজগুলি সম্পাদন করতে পারে না তার বিভিন্ন কারণ রয়েছে। (চেষ্টা করুন, আপনি করবেন
দেখুন।) সব দিয়েই সম্ভব আশা করা.

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

, USAGE


আশা করা সার্চ cmdfile এক্সিকিউট করার জন্য কমান্ডের তালিকার জন্য। আশা করা এছাড়াও আহ্বান করা যেতে পারে
নিহিতভাবে এমন সিস্টেমে যা # সমর্থন করে! স্ক্রিপ্ট এক্সিকিউটেবল চিহ্নিত করে নোটেশন, এবং
আপনার স্ক্রিপ্টে প্রথম লাইন তৈরি করা:

#!/usr/bin/expect -f

অবশ্যই, পথ সঠিকভাবে বর্ণনা করতে হবে কোথায় আশা করা বসবাস করেন। , / Usr / বিন শুধু একটি
উদাহরণ

সার্জারির -c ফ্ল্যাগ স্ক্রিপ্টে যেকোনও আগে কার্যকর করার জন্য একটি কমান্ডের প্রিফেস করে। আদেশ
শেল দ্বারা বিভক্ত হওয়া প্রতিরোধ করার জন্য উদ্ধৃত করা উচিত। এই বিকল্পটি ব্যবহার করা যেতে পারে
একাধিক বার. একাধিক কমান্ড একক দিয়ে কার্যকর করা যেতে পারে -c তাদের আলাদা করে
সেমিকোলন সহ। কমান্ডগুলি যে ক্রমে প্রদর্শিত হয় সেই ক্রমে কার্যকর করা হয়। (Exectk ব্যবহার করার সময়,
এই বিকল্প হিসাবে নির্দিষ্ট করা হয় -আদেশ.)

সার্জারির -d পতাকা কিছু ডায়াগনস্টিক আউটপুট সক্ষম করে, যা প্রাথমিকভাবে এর অভ্যন্তরীণ কার্যকলাপ রিপোর্ট করে
যেমন আদেশ আশা করা এবং গর্ভনাটিকা. এই পতাকাটির "exp_internal 1" এর মতো একই প্রভাব রয়েছে
একটি প্রত্যাশা স্ক্রিপ্টের শুরুতে, এবং এর সংস্করণ আশা করা মুদ্রিত হয়। (দ্য স্ট্রেস
কমান্ড বিবৃতি ট্রেসিং জন্য দরকারী, এবং চিহ্ন কমান্ড ট্রেসিং জন্য দরকারী
পরিবর্তনশীল অ্যাসাইনমেন্ট।) (Exectk ব্যবহার করার সময়, এই বিকল্পটি হিসাবে নির্দিষ্ট করা হয় - diag.)

সার্জারির -D পতাকা একটি ইন্টারেক্টিভ ডিবাগার সক্ষম করে। একটি পূর্ণসংখ্যা মান অনুসরণ করা উচিত। দ্য
ডিবাগার পরবর্তী Tcl পদ্ধতির আগে নিয়ন্ত্রণ নেবে যদি মানটি অ-শূন্য হয় বা যদি a হয়
^C চাপা হয় (বা একটি ব্রেকপয়েন্ট আঘাত করা হয়, বা অন্য উপযুক্ত ডিবাগার কমান্ড প্রদর্শিত হয়
এই পান্ডুলিপি). README ফাইলটি দেখুন বা আরও তথ্যের জন্য ALSO (নীচে) দেখুন৷
ডিবাগার (Exectk ব্যবহার করার সময়, এই বিকল্পটি হিসাবে নির্দিষ্ট করা হয় -ডিবাগ.)

সার্জারির -f ফ্ল্যাগ একটি ফাইলের প্রিফেস যা থেকে কমান্ড পড়তে হয়। পতাকা নিজেই ঐচ্ছিক
যেহেতু এটি শুধুমাত্র # ব্যবহার করার সময় দরকারী! স্বরলিপি (উপরে দেখুন), যাতে অন্যান্য আর্গুমেন্ট হতে পারে
কমান্ড লাইনে সরবরাহ করা হবে। (Exectk ব্যবহার করার সময়, এই বিকল্পটি হিসাবে নির্দিষ্ট করা হয় -file.)

ডিফল্টরূপে, কমান্ড ফাইলটি মেমরিতে পড়া হয় এবং সম্পূর্ণরূপে কার্যকর করা হয়। এইটা
মাঝে মাঝে একবারে এক লাইন ফাইল পড়া পছন্দনীয়। উদাহরণস্বরূপ, stdin এটি পড়া হয়
উপায় ইচ্ছাকৃত ফাইলগুলিকে এইভাবে পরিচালনা করতে বাধ্য করার জন্য, ব্যবহার করুন -b পতাকা (কখন
Expectk ব্যবহার করে, এই বিকল্পটি হিসাবে নির্দিষ্ট করা হয়েছে -বাফার.)বিঃদ্রঃযেstdio-
বাফার উপলব্ধmayএখনোগ্রহণ করাজায়গাযাহোকএই ফিফো বা থেকে পড়ার সময় সমস্যা সৃষ্টি করা উচিত নয়
stdin

যদি স্ট্রিং "-" একটি ফাইলের নাম হিসাবে সরবরাহ করা হয়, তবে এর পরিবর্তে স্ট্যান্ডার্ড ইনপুট পড়া হয়। ("./-" ব্যবহার করুন
আসলে "-" নামের একটি ফাইল থেকে পড়তে।)

সার্জারির -i পতাকা কারণ আশা করা কমান্ড পড়ার পরিবর্তে ইন্টারেক্টিভভাবে প্রম্পট করতে
একটি ফাইল থেকে। প্রম্পটিং এর মাধ্যমে বন্ধ করা হয় প্রস্থান আদেশ বা EOF উপর. দেখা অনুবাদক
(নীচে) আরও তথ্যের জন্য। -i অনুমান করা হয় যদি না কোনো কমান্ড ফাইল না হয় -c ব্যবহৃত হয়.
(Exectk ব্যবহার করার সময়, এই বিকল্পটি হিসাবে নির্দিষ্ট করা হয় - ইন্টারেক্টিভ.)

-- বিকল্পের শেষ সীমাবদ্ধ করতে ব্যবহার করা যেতে পারে। আপনি একটি পাস করতে চান তাহলে এটি দরকারী
আপনার স্ক্রিপ্টের বিকল্পের মত যুক্তি এটি দ্বারা ব্যাখ্যা করা হচ্ছে না আশা করা। এটা পারে
দরকারীভাবে # এ স্থাপন করা হবে! প্রত্যাশা দ্বারা কোনো পতাকা-মত ব্যাখ্যা প্রতিরোধ করতে লাইন. জন্য
উদাহরণস্বরূপ, নিম্নলিখিতটি মূল আর্গুমেন্টগুলি (স্ক্রিপ্টের নাম সহ) মধ্যে ছেড়ে দেবে
পরিবর্তনশীল argv.

#!/usr/bin/expect --

উল্লেখ্য যে স্বাভাবিক getopt(3) এবং চালানো(2) যোগ করার সময় নিয়মাবলী অবশ্যই পালন করতে হবে
# এর পক্ষে যুক্তি! লাইন

$exp_library/expect.rc ফাইলটি উপস্থিত থাকলে স্বয়ংক্রিয়ভাবে উত্স করা হয়, যদি না -N পতাকা হয়
ব্যবহৃত (Exectk ব্যবহার করার সময়, এই বিকল্পটি হিসাবে নির্দিষ্ট করা হয় -এনওআরসি.) এর পরপরই,
ফাইল ~/.expect.rc স্বয়ংক্রিয়ভাবে sourced হয়, যদি না -n পতাকা ব্যবহার করা হয়। যদি
এনভায়রনমেন্ট ভেরিয়েবল DOTDIR সংজ্ঞায়িত করা হয়, এটি একটি ডিরেক্টরি হিসাবে বিবেচিত হয় এবং .expect.rc হল
সেখান থেকে পড়ুন। (Exectk ব্যবহার করার সময়, এই বিকল্পটি হিসাবে নির্দিষ্ট করা হয় -নরক.) এই সোর্সিং
যে কোনো কার্যকর করার পরেই ঘটে -c পতাকা।

-v এর সংস্করণ নম্বর মুদ্রণ এবং প্রস্থান করার প্রত্যাশার কারণ। (এতে সংশ্লিষ্ট পতাকা
এক্সপেক্ট, যা দীর্ঘ পতাকার নাম ব্যবহার করে, তা হল -সংস্করণ।)

ঐচ্ছিক args একটি তালিকা তৈরি করা হয় এবং নাম ভেরিয়েবলে সংরক্ষণ করা হয় argv. argc is
আরজিভির দৈর্ঘ্যে আরম্ভ করা হয়েছে।

argv0 স্ক্রিপ্টের নাম হিসেবে সংজ্ঞায়িত করা হয় (বা বাইনারি যদি কোনো স্ক্রিপ্ট ব্যবহার না করা হয়)। জন্য
উদাহরণস্বরূপ, নিম্নলিখিতটি স্ক্রিপ্টের নাম এবং প্রথম তিনটি আর্গুমেন্ট প্রিন্ট করে:

send_user "$argv0 [lrange $argv 0 2]\n"

কম্যান্ডস


আশা করা ব্যবহারসমূহ TCL (টুল কমান্ড ভাষা)। Tcl নিয়ন্ত্রণ প্রবাহ প্রদান করে (যেমন, যদি, জন্য,
বিরতি), অভিব্যক্তি মূল্যায়ন এবং অন্যান্য বৈশিষ্ট্য যেমন পুনরাবৃত্তি, পদ্ধতি
সংজ্ঞা, ইত্যাদি কমান্ড এখানে ব্যবহৃত কিন্তু সংজ্ঞায়িত নয় (যেমন, সেট, if, Exec) হল Tcl
আদেশ (দেখুন TCL(3))। আশা করা নীচে বর্ণিত অতিরিক্ত কমান্ড সমর্থন করে। যদি না
অন্যথায় নির্দিষ্ট করা হলে, কমান্ড খালি স্ট্রিং ফেরত দেয়।

কমান্ডগুলিকে বর্ণানুক্রমিকভাবে তালিকাভুক্ত করা হয়েছে যাতে সেগুলি দ্রুত সনাক্ত করা যায়। তবে, নতুন
ব্যবহারকারীদের বর্ণনা পড়ে শুরু করা সহজ হতে পারে স্প্যান, পাঠান, আশা করা, এবং
গর্ভনাটিকা, সেই জন্য.

মনে রাখবেন যে ভাষার সর্বোত্তম ভূমিকা (প্রত্যাশিত এবং টিসিএল উভয়ই) দেওয়া আছে
বই "এক্সপ্লোরিং এক্সপেক্ট" (নিচে আরও দেখুন)। উদাহরণ এই ম্যান পৃষ্ঠায় অন্তর্ভুক্ত করা হয়েছে কিন্তু
এগুলি খুব সীমিত কারণ এই ম্যান পেজটি মূলত রেফারেন্স উপাদান হিসাবে বোঝানো হয়েছে।

মনে রাখবেন যে এই ম্যান পেজের পাঠ্যটিতে, একটি বড় হাতের "E" সহ "প্রত্যাশা" বোঝায়
আশা করা প্রোগ্রাম যখন "প্রত্যাশিত" একটি ছোট হাতের সাথে "ই" বোঝায় আশা করা মধ্যে আদেশ
দ্য আশা করা কার্যক্রম.)

ঘনিষ্ঠ [-দাস] [-onexec 0|1] [-আমি spawn_id]
বর্তমান প্রক্রিয়ার সাথে সংযোগ বন্ধ করে। বেশিরভাগ ইন্টারেক্টিভ প্রোগ্রাম সনাক্ত করবে
তাদের stdin এবং প্রস্থানে EOF; এইভাবে ঘনিষ্ঠ সাধারণত প্রক্রিয়াটিকে হত্যা করার জন্য যথেষ্ট
আমরা হব. দ্য -i পতাকা নামের সাথে সম্পর্কিত বন্ধ করার প্রক্রিয়া ঘোষণা করে
spawn_id.

উভয় আশা করা এবং গর্ভনাটিকা শনাক্ত করবে যখন বর্তমান প্রক্রিয়াটি প্রস্থান করবে এবং নিহিতভাবে
একটি কর ঘনিষ্ঠ. কিন্তু আপনি যদি এই প্রক্রিয়াটিকে মেরে ফেলেন, বলুন, "exec kill $pid", আপনাকে করতে হবে
স্পষ্টভাবে কল ঘনিষ্ঠ.

সার্জারির -onexec পতাকা নির্ধারণ করে যে কোনো নতুন স্প্যান আইডি বন্ধ করা হবে কিনা
প্রক্রিয়া বা প্রক্রিয়া ওভারলে করা হয়. একটি স্প্যান আইডি খোলা রাখতে, মানটি ব্যবহার করুন
0. একটি অ-শূন্য পূর্ণসংখ্যার মান যেকোন নতুন স্পোন বন্ধ (ডিফল্ট) করতে বাধ্য করবে
প্রক্রিয়া।

সার্জারির -দাস পতাকা স্পন আইডির সাথে যুক্ত স্লেভকে বন্ধ করে দেয়। ("স্পন-পিটিআই" দেখুন।)
সংযোগ বন্ধ হয়ে গেলে, স্লেভটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায় যদি এখনও থাকে
খোলা।

সংযোগটি পরোক্ষভাবে বা স্পষ্টভাবে বন্ধ করা হোক না কেন, আপনার কল করা উচিত
অপেক্ষা করুন সংশ্লিষ্ট কার্নেল প্রক্রিয়া স্লট পরিষ্কার করতে। ঘনিষ্ঠ ডাকে না অপেক্ষা করুন
যেহেতু কোনো গ্যারান্টি নেই যে একটি প্রক্রিয়া সংযোগ বন্ধ করলে এটি প্রস্থান হবে।
দেখ অপেক্ষা করুন আরও তথ্যের জন্য নীচে।

ডেবাগ্ করা [[-এখন] 0|1]
একটি Tcl ডিবাগার নিয়ন্ত্রণ করে যা আপনাকে স্টেটমেন্টের মধ্য দিয়ে যেতে, ব্রেকপয়েন্ট সেট করতে দেয়,
ইত্যাদি।

কোন আর্গুমেন্ট ছাড়া, ডিবাগার না চললে একটি 1 ফেরত দেওয়া হয়, অন্যথায় একটি 0 হয়
ফিরে আসেন।

একটি 1 যুক্তি দিয়ে, ডিবাগার শুরু হয়। একটি 0 আর্গুমেন্ট সহ, ডিবাগার হল
বন্ধ. যদি একটি 1 আর্গুমেন্ট এর আগে থাকে -এখন পতাকা, ডিবাগার শুরু হয়
অবিলম্বে (অর্থাৎ, এর মাঝখানে ডেবাগ্ করা নিজেই আদেশ)। অন্যথায়, দ
ডিবাগার পরবর্তী Tcl বিবৃতি দিয়ে শুরু হয়।

সার্জারির ডেবাগ্ করা কমান্ড কোনো ফাঁদ পরিবর্তন করে না। এর সাথে প্রত্যাশা শুরু করার সাথে তুলনা করুন
দ্য -D পতাকা (উপরে দেখুন)।

ডিবাগার সম্পর্কে আরও তথ্যের জন্য README ফাইলটি দেখুন বা ALSO (নীচে) দেখুন৷

বিযুক্ত করা
টার্মিনাল থেকে একটি কাঁটাযুক্ত প্রক্রিয়া সংযোগ বিচ্ছিন্ন করে। এটা চলমান অব্যাহত
পটভূমি প্রক্রিয়াটিকে তার নিজস্ব প্রক্রিয়া গ্রুপ দেওয়া হয় (যদি সম্ভব হয়)। স্ট্যান্ডার্ড I/O
/dev/null এ পুনঃনির্দেশিত হয়।

নিম্নলিখিত খণ্ডটি ব্যবহার করে বিযুক্ত করা স্ক্রিপ্ট চালানো চালিয়ে যেতে
পটভূমি।

যদি {[কাঁটা]!=0} বের হয়
বিযুক্ত করা
। । ।

নিম্নলিখিত স্ক্রিপ্টটি একটি পাসওয়ার্ড পড়ে এবং তারপর প্রতি ঘন্টায় একটি প্রোগ্রাম চালায়
প্রতিবার এটি চালানোর সময় একটি পাসওয়ার্ড দাবি করে। স্ক্রিপ্ট পাসওয়ার্ড সরবরাহ করে যাতে
আপনি শুধুমাত্র একবার এটি টাইপ করতে হবে. (দেখুন stty কমান্ড যা দেখায় কিভাবে ঘুরতে হয়
বন্ধ পাসওয়ার্ড প্রতিধ্বনি.)

send_user "পাসওয়ার্ড?\"
প্রত্যাশা_ব্যবহারকারী -পুনরায় "(.*)\n"
{} 1 {} { এর জন্য
যদি {[কাঁটা]!=0} {sleep 3600;continue}
বিযুক্ত করা
spwn priv_prog
পাসওয়ার্ড আশা করুন:
"$expect_out(1,স্ট্রিং)\r" পাঠান
। । ।
প্রস্থান
}

ব্যবহার করার একটি সুবিধা বিযুক্ত করা শেল অসিঙ্ক্রোনাস প্রসেস বৈশিষ্ট্য (&) এর উপরে
যে আশা করা সংযোগ বিচ্ছিন্ন হওয়ার আগে এবং পরে টার্মিনাল প্যারামিটার সংরক্ষণ করতে পারে
নতুন ptys এ প্রয়োগ করুন। সঙ্গে &, আশা করা পড়ার সুযোগ নেই
টার্মিনালের পরামিতি যেহেতু টার্মিনাল ইতিমধ্যেই সময়ের মধ্যে সংযোগ বিচ্ছিন্ন হয়ে গেছে আশা করা
নিয়ন্ত্রণ পায়।

প্রস্থান [-নির্বাচন] [স্থিতি]
কারণসমূহ আশা করা প্রস্থান করতে বা অন্যথায় এটি করার জন্য প্রস্তুত।

সার্জারির -প্রস্থান করুন ফ্ল্যাগ পরবর্তী আর্গুমেন্টকে প্রস্থান হ্যান্ডলার হিসেবে ব্যবহার করতে দেয়। একটি ছাড়া
যুক্তি, বর্তমান প্রস্থান হ্যান্ডলার ফেরত দেওয়া হয়.

সার্জারির -প্রবেশ নিশেদ পতাকা কারণ আশা করা প্রস্থান করার জন্য প্রস্তুত করতে কিন্তু আসলে থামতে পারে না
অপারেটিং সিস্টেমে নিয়ন্ত্রণ ফিরিয়ে আনা। ব্যবহারকারী-সংজ্ঞায়িত প্রস্থান হ্যান্ডলার হিসাবে চালানো হয়
পাশাপাশি প্রত্যাশার নিজস্ব অভ্যন্তরীণ হ্যান্ডলার। আর কোন এক্সপেক্ট কমান্ড থাকা উচিত নয়
নিষ্পন্ন. আপনি যদি অন্য Tcl এক্সটেনশনগুলির সাথে প্রত্যাশা চালান তবে এটি কার্যকর। দ্য
বর্তমান দোভাষী (এবং মূল উইন্ডো যদি Tk পরিবেশে থাকে) যাতে অন্যান্য থাকে
Tcl এক্সটেনশন পরিষ্কার করতে পারেন. যদি প্রত্যাশা থাকে প্রস্থান আবার বলা হয় (তবে এটি হতে পারে
ঘটবে), হ্যান্ডলারগুলি পুনরায় চালানো হয় না।

প্রস্থান করার পরে, উদ্ভূত প্রক্রিয়াগুলির সমস্ত সংযোগ বন্ধ হয়ে যায়। বন্ধ হবে
উদ্ভূত প্রক্রিয়া দ্বারা একটি EOF হিসাবে সনাক্ত করা হয়েছে। প্রস্থান এর বাইরে অন্য কোনো পদক্ষেপ নেয় না
সাধারণ _প্রস্থান করুন(2) পদ্ধতি করে। এইভাবে, প্রসেস তৈরি হয়েছে যা পরীক্ষা করে না
EOF চলতে চলতে পারে। (নির্ধারণের জন্য বিভিন্ন শর্ত গুরুত্বপূর্ণ
উদাহরণস্বরূপ, একটি উদ্ভূত প্রক্রিয়া কী সংকেত প্রেরণ করা হবে, তবে এগুলি সিস্টেম-
নির্ভরশীল, সাধারণত অধীনে নথিভুক্ত প্রস্থান(3) প্রসেস যা চলতে থাকে
রান init দ্বারা উত্তরাধিকারসূত্রে পাওয়া যাবে।

অবস্থা (অথবা 0 নির্দিষ্ট না থাকলে) এর প্রস্থান অবস্থা হিসাবে ফেরত দেওয়া হয় আশা করা. প্রস্থান is
যদি স্ক্রিপ্টের শেষ পর্যন্ত পৌঁছানো হয় তাহলে নিহিতভাবে কার্যকর করা হয়।

exp_continue [-চলমান_টাইমার]
আদেশ exp_continue অনুমতি আশা করা নিজেই বরং নির্বাহ চালিয়ে যেতে
স্বাভাবিকভাবে ফিরে আসছে। গতানুগতিক exp_continue টাইমআউট টাইমার রিসেট করে।
সার্জারির -continue_timer পতাকা টাইমার পুনরায় চালু হতে বাধা দেয়। (দেখা আশা করা আরো বেশী
তথ্য।)

exp_অভ্যন্তরীণ [-চ ফাইল] মূল্য
অভ্যন্তরীণ ডায়াগনস্টিক তথ্য পাঠাতে আরও কমান্ডের কারণ হয় আশা করা stderr থেকে
if মূল্য অ-শূন্য। এই আউটপুট নিষ্ক্রিয় যদি মূল্য হল 0। ডায়াগনস্টিক
তথ্য প্রাপ্ত প্রতিটি অক্ষর অন্তর্ভুক্ত, এবং মেলে প্রতিটি প্রচেষ্টা করা
নিদর্শনগুলির বিপরীতে বর্তমান আউটপুট।

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

সার্জারির -তথ্য ফ্ল্যাগ exp_internal সবচেয়ে সাম্প্রতিক অ-এর একটি বিবরণ ফেরত দেয়
তথ্য আর্গুমেন্ট দেওয়া.

exp_open [আর্গস] [-আমি spawn_id]
একটি Tcl ফাইল শনাক্তকারী প্রদান করে যা মূল স্পন আইডির সাথে মিলে যায়। ফাইল
আইডেন্টিফায়ারটি তখন এমনভাবে ব্যবহার করা যেতে পারে যেন এটি Tcl এর দ্বারা খোলা হয়েছে খোলা আদেশ (স্পন
আইডি আর ব্যবহার করা উচিত নয়। ক অপেক্ষা করুন মৃত্যুদন্ড কার্যকর করা উচিত নয়।

সার্জারির -খোলা রাখো ফ্ল্যাগ এক্সপেক্ট কমান্ডের মাধ্যমে অ্যাক্সেসের জন্য স্পন আইডি খোলা রাখে। ক
অপেক্ষা করুন স্পন আইডিতে কার্যকর করতে হবে।

exp_pid [-আমি spawn_id]
বর্তমানে উদ্ভূত প্রক্রিয়ার সাথে সম্পর্কিত প্রক্রিয়া আইডি প্রদান করে। যদি -i
পতাকা ব্যবহার করা হয়, প্রদত্ত স্প্যান আইডির সাথে প্রত্যাবর্তিত পিডের সাথে মিলে যায়।

exp_send
জন্য একটি উপনাম হয় পাঠান.

exp_send_error
জন্য একটি উপনাম হয় send_error.

exp_send_log
জন্য একটি উপনাম হয় send_log.

exp_send_tty
জন্য একটি উপনাম হয় send_tty.

exp_send_user
জন্য একটি উপনাম হয় send_user.

exp_version [[-প্রস্থান] সংস্করণ]
স্ক্রিপ্টটি বর্তমান সংস্করণের সাথে সামঞ্জস্যপূর্ণ তা নিশ্চিত করার জন্য দরকারী
প্রত্যাশা

কোন যুক্তি ছাড়া, বর্তমান সংস্করণ আশা করা ফেরত দেওয়া হয়। এই সংস্করণ তারপর হতে পারে
আপনার স্ক্রিপ্টে এনকোড করা হবে। আপনি যদি সত্যিই জানেন যে আপনি এর বৈশিষ্ট্যগুলি ব্যবহার করছেন না
সাম্প্রতিক সংস্করণ, আপনি একটি পূর্ববর্তী সংস্করণ নির্দিষ্ট করতে পারেন।

সংস্করণগুলি বিন্দু দ্বারা পৃথক করা তিনটি সংখ্যা নিয়ে গঠিত। প্রথম প্রধান সংখ্যা.
এর সংস্করণের জন্য লেখা স্ক্রিপ্ট আশা করা একটি ভিন্ন প্রধান সংখ্যা সঙ্গে প্রায় হবে
অবশ্যই কাজ না। exp_version প্রধান সংখ্যা মেলে না হলে একটি ত্রুটি প্রদান করে।

দ্বিতীয়টি হল গৌণ সংখ্যা। বৃহত্তর অপ্রধান সহ একটি সংস্করণের জন্য লেখা স্ক্রিপ্ট৷
বর্তমান সংস্করণের তুলনায় সংখ্যা কিছু নতুন বৈশিষ্ট্যের উপর নির্ভর করতে পারে এবং চলতে পারে না।
exp_version বড় সংখ্যার সাথে মেলে, কিন্তু স্ক্রিপ্ট গৌণ সংখ্যা হলে একটি ত্রুটি প্রদান করে
দৌড়ের চেয়ে বড় আশা করা.

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

সঙ্গে সঙ্গে - প্রস্থান করুন পতাকা, আশা করা একটি ত্রুটি প্রিন্ট করে এবং সংস্করণটি পুরানো হলে প্রস্থান করে।

আশা করা [[-নির্বাচন] pat1 শরীর1] ... [-নির্বাচন] patn [দেহ]
একটি নির্দিষ্ট প্রক্রিয়ার আউটপুটের সাথে একটি প্যাটার্ন মেলে না হওয়া পর্যন্ত অপেক্ষা করে
সময়কাল অতিবাহিত হয়েছে, অথবা একটি শেষ-অফ-ফাইল দেখা যাচ্ছে। যদি চূড়ান্ত শরীর খালি হয়, এটি
বাদ দেওয়া যেতে পারে।

সাম্প্রতিক থেকে নিদর্শন প্রত্যাশা_আগে কমান্ড পরোক্ষভাবে কোনো আগে ব্যবহার করা হয়
অন্যান্য নিদর্শন। সবচেয়ে সাম্প্রতিক থেকে নিদর্শন প্রত্যাশা_পরে আদেশ নিহিত আছে
অন্য কোন প্যাটার্ন পরে ব্যবহার করা হয়।

যুক্তিগুলো পুরোটা হলে আশা করা বিবৃতি একাধিক লাইন প্রয়োজন, সব
আর্গুমেন্টগুলিকে একটিতে "বন্ধনী" করা যেতে পারে যাতে প্রতিটি লাইন a দিয়ে শেষ করা এড়ানো যায়
ব্যাকস্ল্যাশ এই একটি ক্ষেত্রে, স্বাভাবিক Tcl প্রতিস্থাপন সত্ত্বেও ঘটবে
ধনুর্বন্ধনী

যদি একটি প্যাটার্ন কিওয়ার্ড হয় ফাইলের শেষে, সংশ্লিষ্ট সংস্থাটি শেষের শেষে কার্যকর করা হয়-
ফাইল যদি একটি প্যাটার্ন কিওয়ার্ড হয় সময় শেষ, সংশ্লিষ্ট সংস্থার উপর মৃত্যুদন্ড কার্যকর করা হয়
সময় শেষ. যদি কোন টাইমআউট কীওয়ার্ড ব্যবহার করা না হয়, তাহলে একটি অন্তর্নিহিত নাল অ্যাকশন কার্যকর করা হয়
সময় শেষ. ডিফল্ট টাইমআউট পিরিয়ড হল 10 সেকেন্ড কিন্তু সেট করা হতে পারে, উদাহরণস্বরূপ
30, কমান্ড দ্বারা "সেট টাইমআউট 30"। একটি অসীম সময়সীমা দ্বারা মনোনীত হতে পারে
মান -1। যদি একটি প্যাটার্ন কিওয়ার্ড হয় ডিফল্ট, সংশ্লিষ্ট সংস্থা মৃত্যুদন্ড কার্যকর করা হয়
হয় টাইমআউট বা ফাইলের শেষে।

যদি একটি প্যাটার্ন মিলে যায়, তাহলে সংশ্লিষ্ট বডিটি কার্যকর করা হয়। আশা করা প্রত্যাবর্তন
শরীরের ফলাফল (বা খালি স্ট্রিং যদি কোন প্যাটার্ন মেলে না)। ঘটনা যে
একাধিক প্যাটার্ন মেলে, যেটি প্রথমে প্রদর্শিত হয় সেটি একটি বডি নির্বাচন করতে ব্যবহৃত হয়।

প্রতিবার নতুন আউটপুট আসে, প্রতিটি প্যাটার্নের সাথে তাদের ক্রম অনুসারে তুলনা করা হয়
তালিকাভুক্ত এইভাবে, আপনি শেষ প্যাটার্ন তৈরি করে ম্যাচের অনুপস্থিতির জন্য পরীক্ষা করতে পারেন
কিছু উপস্থিত হওয়ার নিশ্চয়তা, যেমন একটি প্রম্পট। এমন পরিস্থিতিতে যেখানে নেই
প্রম্পট, আপনাকে অবশ্যই ব্যবহার করতে হবে সময় শেষ (আপনি যদি ম্যানুয়ালি ইন্টারঅ্যাক্ট করেন ঠিক আপনার মতো)।

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

উদাহরণস্বরূপ, নিম্নলিখিত খণ্ডটি একটি সফল লগইনের জন্য দেখায়। (মনে রাখবেন যে গর্ভপাত
স্ক্রিপ্টের অন্যত্র সংজ্ঞায়িত একটি পদ্ধতি বলে মনে করা হয়।)

প্রত্যাশা {
ব্যস্ত {ব্যস্ত রাখে\n ; exp_continue}
ব্যর্থ গর্ভপাত
"অবৈধ পাসওয়ার্ড" বাতিল
সময়সীমা বন্ধ করা
সংযুক্ত
}

চতুর্থ প্যাটার্নে উদ্ধৃতিগুলি প্রয়োজনীয় কারণ এটিতে একটি স্থান রয়েছে, যা হবে
অন্যথায় কর্ম থেকে প্যাটার্ন আলাদা করুন। একই ক্রিয়া সহ প্যাটার্নগুলি (যেমন
3য় এবং 4র্থ হিসাবে) আবার ক্রিয়াগুলি তালিকাভুক্ত করা প্রয়োজন৷ এটি ব্যবহার করে এড়ানো যেতে পারে
regexp-শৈলী নিদর্শন (নীচে দেখুন)। গ্লোব-শৈলী নিদর্শন গঠনের বিষয়ে আরও তথ্য
Tcl ম্যানুয়াল পাওয়া যাবে।

Regexp-শৈলী নিদর্শনগুলি Tcl-এর দ্বারা সংজ্ঞায়িত সিনট্যাক্স অনুসরণ করে regexp ("নিয়মিত" এর জন্য সংক্ষিপ্ত
expression") কমান্ড। regexp প্যাটার্ন পতাকার সাথে চালু করা হয় -রে. দ্য
পূর্ববর্তী উদাহরণ একটি regexp ব্যবহার করে পুনরায় লেখা যেতে পারে:

প্রত্যাশা {
ব্যস্ত {ব্যস্ত রাখে\n ; exp_continue}
-re "ব্যর্থ|অবৈধ পাসওয়ার্ড" বাতিল করুন
সময়সীমা বন্ধ করা
সংযুক্ত
}

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

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

সার্জারির -যেমন ফ্ল্যাগ প্যাটার্নটিকে একটি "সঠিক" স্ট্রিং হিসাবে মেলে। না
*, ^, ইত্যাদির ব্যাখ্যা করা হয় (যদিও সাধারণ Tcl কনভেনশনগুলি অবশ্যই
পর্যবেক্ষণ করা হবে)। সঠিক নিদর্শন সবসময় unanchored হয়.

সার্জারির -নোকেস ফ্ল্যাগ আউটপুটের বড় হাতের অক্ষরগুলিকে তুলনা করে যেন তারা
ছোট হাতের অক্ষর ছিল। প্যাটার্ন প্রভাবিত হয় না.

আউটপুট পড়ার সময়, 2000 বাইটের বেশি আগের বাইট হতে বাধ্য করতে পারে
"ভুলে গেছে"। এটি ফাংশনের সাথে পরিবর্তন করা যেতে পারে ম্যাচ_সর্বোচ্চ. (মনে রাখবেন যে
অত্যধিক বড় মান প্যাটার্ন ম্যাচারকে ধীর করে দিতে পারে।) যদি প্যাটলিস্ট is
full_buffer, সংশ্লিষ্ট সংস্থা যদি মৃত্যুদন্ড কার্যকর করা হয় ম্যাচ_সর্বোচ্চ বাইট হয়েছে
প্রাপ্ত এবং অন্য কোন নিদর্শন মেলেনি. হোক বা না হোক full_buffer শব্দ
ব্যবহার করা হয়, ভুলে যাওয়া অক্ষরগুলি expect_out(বাফার) লেখা হয়।

If প্যাটলিস্ট মূলশব্দ অকার্যকর, এবং নাল অনুমোদিত (এর মাধ্যমে রিমুভ_নাল
কমান্ড), একটি একক ASCII 0 মিলে গেলে সংশ্লিষ্ট বডিটি কার্যকর করা হয়। এইটা
গ্লোব বা regexp প্যাটার্নের মাধ্যমে 0 বাইট মেলানো সম্ভব নয়।

একটি প্যাটার্ন (বা eof বা full_buffer) মেলে, যে কোনো মিল এবং পূর্বে
অতুলনীয় আউটপুট ভেরিয়েবলে সংরক্ষিত হয় প্রত্যাশা_আউট(বাফার). 9 regexp পর্যন্ত
সাবস্ট্রিং ম্যাচগুলি ভেরিয়েবলগুলিতে সংরক্ষিত হয় প্রত্যাশা_আউট(1, স্ট্রিং) দ্বারা
প্রত্যাশা_আউট(9, স্ট্রিং)। যদি -সূচক পতাকা একটি প্যাটার্ন আগে ব্যবহার করা হয়, শুরু
এবং শেষ সূচকগুলি (এর জন্য উপযুক্ত একটি ফর্মে lrange10টি স্ট্রিং এর মধ্যে সংরক্ষণ করা হয়
ভেরিয়েবল প্রত্যাশা_আউট (এক্স, শুরু) এবং প্রত্যাশা_আউট (এক্স, শেষ) যেখানে X একটি সংখ্যা,
বাফারে সাবস্ট্রিং অবস্থানের সাথে মিলে যায়। 0 স্ট্রিং বোঝায় যা
সম্পূর্ণ প্যাটার্নের সাথে মিলে যায় এবং গ্লোব প্যাটার্নের পাশাপাশি regexp-এর জন্য তৈরি হয়
নিদর্শন উদাহরণস্বরূপ, যদি একটি প্রক্রিয়া "abcdefgh\n" এর আউটপুট তৈরি করে, ফলাফল
বা:

আশা করি "সিডি"

নিম্নোক্ত বিবৃতিগুলি কার্যকর করা হয়েছে।

সেট expect_out(0, স্ট্রিং) cd
সেট expect_out(বাফার) abcd

এবং "efgh\n" আউটপুট বাফারে রেখে দেওয়া হয়। যদি একটি প্রক্রিয়া আউটপুট উত্পাদন করে
"abbbcabkkkka\n", এর ফলাফল:

প্রত্যাশা -সূচক -re "b(b*).*(k+)"

নিম্নোক্ত বিবৃতিগুলি কার্যকর করা হয়েছে।

প্রত্যাশা_আউট (0, শুরু) 1 সেট করুন
প্রত্যাশা_আউট (0, শেষ) 10 সেট করুন
সেট expect_out(0,স্ট্রিং) bbbcabkkkk
প্রত্যাশা_আউট (1, শুরু) 2 সেট করুন
প্রত্যাশা_আউট (1, শেষ) 3 সেট করুন
সেট expect_out(1,স্ট্রিং) bb
প্রত্যাশা_আউট (2, শুরু) 10 সেট করুন
প্রত্যাশা_আউট (2, শেষ) 10 সেট করুন
সেট expect_out(2, স্ট্রিং) k
প্রত্যাশা_আউট(বাফার) abbbcabkkkk সেট করুন

এবং আউটপুট বাফারে "a\n" বাকি থাকে। প্যাটার্ন "*" (এবং -re ".*") ফ্লাশ হবে
প্রক্রিয়া থেকে আর কোনো আউটপুট পড়া ছাড়া আউটপুট বাফার.

সাধারণত, মিলিত আউটপুট প্রত্যাশার অভ্যন্তরীণ বাফার থেকে বাতিল করা হয়। এই হতে পারে
সঙ্গে একটি প্যাটার্ন উপসর্গ দ্বারা প্রতিরোধ করা -না স্থানান্তর পতাকা এই পতাকা
বিশেষ করে পরীক্ষা-নিরীক্ষায় উপযোগী (এবং সুবিধার জন্য সংক্ষেপে "-not" বলা যেতে পারে
পরীক্ষা করার সময়)।

ম্যাচিং আউটপুট (বা eof বা full_buffer) এর সাথে যুক্ত স্পন আইডি সংরক্ষণ করা হয়
in প্রত্যাশা_আউট(স্পন_আইডি).

সার্জারির -সময় শেষ ফ্ল্যাগ বর্তমান প্রত্যাশা কমান্ডকে নিম্নলিখিত মানটিকে a হিসাবে ব্যবহার করতে দেয়
টাইমআউট ভেরিয়েবলের মান ব্যবহার করার পরিবর্তে টাইমআউট।

ডিফল্টরূপে, বর্তমান প্রক্রিয়া থেকে আউটপুটের সাথে নিদর্শন মিলে যায়
দ্য -i ফ্ল্যাগ ঘোষণা করে যে নামযুক্ত spawn_id তালিকা থেকে আউটপুট যে কোনোটির সাথে মিলে যায়
নিম্নলিখিত নিদর্শন (পরবর্তী পর্যন্ত -i) spawn_id তালিকাটি হয় একটি হওয়া উচিত
spawn_ids-এর সাদা স্পেস বিভক্ত তালিকা বা একটি ভেরিয়েবল এই ধরনের একটি তালিকা উল্লেখ করে
spawn_ids

উদাহরণস্বরূপ, নিম্নলিখিত উদাহরণটি বর্তমান প্রক্রিয়া থেকে "সংযুক্ত" এর জন্য অপেক্ষা করে,
অথবা $proc2 দ্বারা নামযুক্ত spawn_id থেকে "ব্যস্ত", "ব্যর্থ" বা "অবৈধ পাসওয়ার্ড"।

প্রত্যাশা {
-i $proc2 ব্যস্ত {ব্যস্ত রাখে\n ; exp_continue}
-re "ব্যর্থ|অবৈধ পাসওয়ার্ড" বাতিল করুন
সময়সীমা বন্ধ করা
সংযুক্ত
}

গ্লোবাল ভেরিয়েবলের মান any_spawn_id যে কোনো নিদর্শন মেলে ব্যবহার করা যেতে পারে
spawn_ids যেগুলোর নাম অন্য সকলের সাথে -i স্রোতে পতাকা আশা করা আদেশ দ্য
একটি থেকে spawn_id -i কোনো সংশ্লিষ্ট প্যাটার্ন ছাড়া পতাকা (অর্থাৎ, অবিলম্বে অনুসরণ করুন
অন্য -i) একই অন্যান্য নিদর্শন উপলব্ধ করা হয় আশা করা হুকুম
সঙ্গে যুক্ত any_spawn_id.

সার্জারির -i পতাকা একটি গ্লোবাল ভেরিয়েবলের নামও দিতে পারে যে ক্ষেত্রে ভেরিয়েবলটি a এর জন্য পড়া হয়
স্পন আইডির তালিকা। ভেরিয়েবলটি যখনই পরিবর্তিত হয় তখন এটি পুনরায় পড়া হয়। এই একটি উপায় প্রদান করে
কমান্ড কার্যকর করার সময় I/O উৎস পরিবর্তন করা। স্পন আইডি প্রদান করা হয়েছে
এই ভাবে বলা হয় "পরোক্ষ" spwn ids.

কর্ম যেমন বিরতি এবং অবিরত কারণ নিয়ন্ত্রণ কাঠামো (যেমন, উন্নত , proc) থেকে
স্বাভাবিক ভাবে আচরণ করুন। আদেশ exp_continue অনুমতি আশা করা নিজেই চালিয়ে যেতে
সাধারণভাবে ফিরে আসার পরিবর্তে কার্যকর করা।

এটি সুস্পষ্ট লুপ এড়াতে বা বারবার প্রত্যাশিত বিবৃতি এড়ানোর জন্য দরকারী। দ্য
নিম্নলিখিত উদাহরণটি rlogin স্বয়ংক্রিয় করার জন্য একটি খণ্ডের অংশ। দ্য exp_continue এড়াতে
একটি সেকেন্ড লিখতে হবে আশা করা বিবৃতি (আবার প্রম্পট সন্ধান করতে) যদি
rlogin একটি পাসওয়ার্ডের জন্য অনুরোধ করে।

প্রত্যাশা {
পাসওয়ার্ড: {
stty - echo
send_user "পাসওয়ার্ড ($user এর জন্য) $host এ: "
প্রত্যাশা_ব্যবহারকারী -পুনরায় "(.*)\n"
send_user "\n"
"$expect_out(1,স্ট্রিং)\r" পাঠান
stty প্রতিধ্বনি
exp_continue
} ত্রুটিপূর্ণ {
send_user "অবৈধ পাসওয়ার্ড বা অ্যাকাউন্ট\n"
প্রস্থান
} সময় শেষ {
send_user "$host এর সাথে সংযোগের সময় শেষ\n"
প্রস্থান
} eof {
send_user
"হোস্টের সাথে সংযোগ ব্যর্থ হয়েছে: $expect_out(buffer)"
প্রস্থান
} -re $prompt
}

উদাহরণস্বরূপ, নিম্নলিখিত খণ্ডটি একজন ব্যবহারকারীকে একটি মিথস্ক্রিয়া নির্দেশ করতে সহায়তা করতে পারে
ইতিমধ্যে সম্পূর্ণ স্বয়ংক্রিয়। এই ক্ষেত্রে, টার্মিনালটি কাঁচা মোডে রাখা হয়। যদি
ব্যবহারকারী "+" চাপে, একটি পরিবর্তনশীল বৃদ্ধি করা হয়। "p" চাপলে বেশ কিছু রিটার্ন হয়
প্রক্রিয়ায় পাঠানো হয়, সম্ভবত এটিকে কোনোভাবে খোঁচা দেওয়ার জন্য, এবং "i" ব্যবহারকারীকে ইন্টারঅ্যাক্ট করতে দেয়
প্রক্রিয়ার সাথে, কার্যকরভাবে স্ক্রিপ্ট থেকে নিয়ন্ত্রণ চুরি করে। অস্ত্রোপচার,
দ্য exp_continue বর্তমানের অনুমতি দেয় আশা করা পরে প্যাটার্ন ম্যাচিং চালিয়ে যেতে
বর্তমান কর্ম নির্বাহ করা।

stty raw -echo
প্রত্যাশা_পরে {
-i $user_spawn_id
"p" {পাঠাও "\r\r\r"; exp_continue}
"+" {incr foo; exp_continue}
"আমি" {মিথস্ক্রিয়া; exp_continue}
"প্রস্থান" প্রস্থান
}

গতানুগতিক, exp_continue টাইমআউট টাইমার রিসেট করে। টাইমার পুনরায় চালু করা হয় না, যদি
exp_continue সঙ্গে বলা হয় -continue_timer পতাকা।

প্রত্যাশা_পরে [প্রত্যাশিত_আর্গস]
একইভাবে কাজ করে প্রত্যাশা_আগে তা ছাড়া যদি উভয়ের থেকে নিদর্শন আশা করা এবং
প্রত্যাশা_পরে মেলাতে পারে, আশা করা প্যাটার্ন ব্যবহার করা হয়। দেখুন প্রত্যাশা_আগে হুকুম
আরও তথ্যের জন্য.

প্রত্যাশা_পটভূমি [প্রত্যাশিত_আর্গস]
হিসাবে একই আর্গুমেন্ট নেয় আশা করা, তবে তা অবিলম্বে ফিরে আসে। নিদর্শন হয়
যখনই নতুন ইনপুট আসে পরীক্ষা করা হয়। নমুনা সময় শেষ এবং ডিফল্ট অর্থহীন
থেকে প্রত্যাশা_পটভূমি এবং নীরবে বাতিল করা হয়। অন্যথায়, দ প্রত্যাশা_পটভূমি
কমান্ড ব্যবহার করে প্রত্যাশা_আগে এবং প্রত্যাশা_পরে নিদর্শন ঠিক মত আশা করা আছে।

কখন প্রত্যাশা_পটভূমি কর্ম মূল্যায়ন করা হচ্ছে, জন্য পটভূমি প্রক্রিয়াকরণ
একই স্পন আইডি ব্লক করা হয়েছে। ব্যাকগ্রাউন্ড প্রসেসিং আনব্লক করা হয় যখন অ্যাকশন
সম্পূর্ণ করে যখন ব্যাকগ্রাউন্ড প্রসেসিং ব্লক করা হয়, এটা করা সম্ভব
(পুরোভূমি) আশা করা একই স্পন আইডিতে।

এটি কার্যকর করা সম্ভব নয় আশা করা যখন একটি প্রত্যাশা_পটভূমি অবরুদ্ধ করা হয়।
প্রত্যাশা_পটভূমি একটি নির্দিষ্ট স্পন আইডির জন্য একটি নতুন ঘোষণা করে মুছে ফেলা হয়
একই স্পন আইডি সহ expect_background। ঘোষণা করছে প্রত্যাশা_পটভূমি না দিয়ে
প্যাটার্ন প্রদত্ত স্পোন আইডিকে তে নিদর্শন মেলানোর ক্ষমতা থেকে সরিয়ে দেয়
পটভূমি।

প্রত্যাশা_আগে [প্রত্যাশিত_আর্গস]
হিসাবে একই আর্গুমেন্ট নেয় আশা করাতবে তা অবিলম্বে ফিরে আসে। প্যাটার্ন-ক্রিয়া
সবচেয়ে সাম্প্রতিক থেকে জোড়া প্রত্যাশা_আগে একই স্পন আইডির সাথে পরোক্ষভাবে যোগ করা হয়
যে কোন অনুসরণ আশা করা আদেশ যদি একটি প্যাটার্ন মেলে, এটি ছিল হিসাবে বিবেচনা করা হয়
এ উল্লেখ করা হয়েছে আশা করা আদেশ নিজেই, এবং সংশ্লিষ্ট বডি কার্যকর করা হয়
এর প্রসঙ্গ আশা করা আদেশ যদি উভয় থেকে নিদর্শন প্রত্যাশা_আগে এবং আশা করা
মেলাতে পারে, প্রত্যাশা_আগে প্যাটার্ন ব্যবহার করা হয়।

যদি কোন প্যাটার্ন নির্দিষ্ট করা না থাকে, তাহলে স্পন আইডি কোন প্যাটার্নের জন্য চেক করা হয় না।

একটি দ্বারা ওভাররাইড করা না হলে -i পতাকা, প্রত্যাশা_আগে স্পন আইডির সাথে নিদর্শন মেলে
যে সময়ে সংজ্ঞায়িত প্রত্যাশা_আগে কমান্ডটি কার্যকর করা হয়েছিল (যখন এটি নয়
প্যাটার্ন মিলেছে)।

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

expect_before -info -i $proc

সর্বাধিক একটি স্পন আইডি স্পেসিফিকেশন দেওয়া হতে পারে. পতাকা-পরোক্ষ দমন করে
ডাইরেক্ট স্পন আইডি যা শুধুমাত্র পরোক্ষ স্পেসিফিকেশন থেকে আসে।

একটি স্প্যান আইডি স্পেসিফিকেশনের পরিবর্তে, পতাকা "-all" এর ফলে "-info" রিপোর্ট করা হবে
সব স্পন আইডি।

-info পতাকার আউটপুট expect_before-এর যুক্তি হিসাবে পুনরায় ব্যবহার করা যেতে পারে।

প্রত্যাশা_টি [প্রত্যাশিত_আর্গস]
মত আশা করা কিন্তু এটি /dev/tty থেকে অক্ষর পড়ে (যেমন থেকে কীস্ট্রোক
ব্যবহারকারী)। ডিফল্টরূপে, পড়া রান্না করা মোডে সঞ্চালিত হয়। এইভাবে, লাইন দিয়ে শেষ করতে হবে
জন্য একটি রিটার্ন আশা করা তাদের দেখতে. এই মাধ্যমে পরিবর্তন করা যেতে পারে stty (দেখুন
stty নীচের আদেশ)।

প্রত্যাশা_ব্যবহারকারী [প্রত্যাশিত_আর্গস]
মত আশা করা কিন্তু এটি stdin থেকে অক্ষর পড়ে (যেমন ব্যবহারকারীর থেকে কীস্ট্রোক)।
ডিফল্টরূপে, পড়া রান্না করা মোডে সঞ্চালিত হয়। এইভাবে, লাইনগুলি অবশ্যই রিটার্ন দিয়ে শেষ করতে হবে
জন্য ক্রম আশা করা তাদের দেখতে. এই মাধ্যমে পরিবর্তন করা যেতে পারে stty (দেখুন stty হুকুম
নিচে).

কাঁটাচামচ একটি নতুন প্রক্রিয়া তৈরি করে। নতুন প্রক্রিয়া বর্তমানের একটি সঠিক অনুলিপি আশা করা
প্রক্রিয়া সাফল্যের উপর, কাঁটাচামচ নতুন (শিশু) প্রক্রিয়াতে 0 ফেরত দেয় এবং ফেরত দেয়
সন্তানের প্রসেস আইডি প্যারেন্ট প্রসেসে পাঠান। ব্যর্থতার উপর (অনিয়ত কারণে
সম্পদের অভাব, যেমন, স্থান পরিবর্তন, মেমরি), কাঁটাচামচ অভিভাবকের কাছে -1 ফেরত দেয়
প্রক্রিয়া, এবং কোন শিশু প্রক্রিয়া তৈরি করা হয় না।

কাঁটাযুক্ত প্রক্রিয়াগুলি এর মাধ্যমে প্রস্থান করে প্রস্থান কমান্ড, ঠিক মূল প্রক্রিয়ার মত। কাঁটা
প্রসেসগুলিকে লগ ফাইলগুলিতে লেখার অনুমতি দেওয়া হয়। আপনি ডিবাগিং নিষ্ক্রিয় না হলে বা
বেশিরভাগ প্রক্রিয়ায় লগ ইন করলে ফলাফল বিভ্রান্তিকর হতে পারে।

কিছু pty বাস্তবায়ন একাধিক পাঠক এবং লেখক দ্বারা বিভ্রান্ত হতে পারে, এমনকি
ক্ষণে ক্ষণে সুতরাং, এটি সবচেয়ে নিরাপদ কাঁটাচামচ স্পনিং প্রক্রিয়ার আগে।

গর্ভনাটিকা [স্ট্রিং1 শরীর1] ... [ স্ট্রিং [শরীর]]
ব্যবহারকারীকে বর্তমান প্রক্রিয়ার নিয়ন্ত্রণ দেয়, যাতে কীস্ট্রোকগুলিকে পাঠানো হয়
বর্তমান প্রক্রিয়া, এবং বর্তমান প্রক্রিয়ার stdout এবং stderr ফেরত দেওয়া হয়।

স্ট্রিং-বডি জোড়া আর্গুমেন্ট হিসাবে নির্দিষ্ট করা যেতে পারে, যে ক্ষেত্রে শরীরের মৃত্যুদন্ড কার্যকর করা হয়
যখন সংশ্লিষ্ট স্ট্রিং প্রবেশ করানো হয়। (ডিফল্টরূপে, স্ট্রিং পাঠানো হয় না
বর্তমান প্রক্রিয়া।) অনুবাদক কমান্ড অনুমান করা হয়, যদি চূড়ান্ত শরীর হয়
অনুপস্থিত।

যুক্তিগুলো পুরোটা হলে গর্ভনাটিকা বিবৃতি একাধিক লাইন প্রয়োজন, সব
যুক্তিগুলিকে একটিতে "বন্ধনী" করা যেতে পারে যাতে প্রতিটি লাইন a দিয়ে শেষ করা এড়াতে পারে
ব্যাকস্ল্যাশ এই একটি ক্ষেত্রে, স্বাভাবিক Tcl প্রতিস্থাপন সত্ত্বেও ঘটবে
ধনুর্বন্ধনী

উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি নিম্নলিখিত স্ট্রিং-বডির সাথে ইন্টারঅ্যাক্ট করে
জোড়া সংজ্ঞায়িত: যখন ^Z চাপা হয়, আশা করা স্থগিত করা হয়। (দ্য -রিসেট পতাকা পুনরুদ্ধার
টার্মিনাল মোড।) যখন ^A চাপানো হয়, ব্যবহারকারী দেখতে পায় "আপনি একটি নিয়ন্ত্রণ-এ টাইপ করেছেন" এবং
প্রক্রিয়া একটি ^A পাঠানো হয়. যখন $ চাপানো হয়, ব্যবহারকারী তারিখটি দেখতে পায়। যখন ^C হয়
চাপা, আশা করা প্রস্থান যদি "foo" প্রবেশ করা হয়, ব্যবহারকারী "বার" দেখতে পায়। যখন ~~ হয়
চাপা, আশা করা ইন্টারপ্রেটার ইন্টারেক্টিভভাবে চলে।

CTRLZ \032 সেট করুন
যোগাযোগ {
- $CTRLZ রিসেট করুন {এক্সিক কিল -স্টপ [পিড]}
\001 {send_user "আপনি একটি নিয়ন্ত্রণ-A টাইপ করেছেন";
"\001" পাঠান
}
$ {send_user "তারিখ হল [ঘড়ি বিন্যাস [ঘড়ি সেকেন্ড]]।"}
\003 প্রস্থান করুন
foo {send_user "bar"}
~~
}

স্ট্রিং-বডি জোড়ায়, স্ট্রিংগুলি আর্গুমেন্ট হিসাবে তালিকাভুক্ত ক্রম অনুসারে মেলে।
আংশিকভাবে মেলে এমন স্ট্রিংগুলিকে প্রত্যাশিতভাবে বর্তমান প্রক্রিয়াতে পাঠানো হয় না
বাকি আসছে। যদি অক্ষরগুলি এমনভাবে প্রবেশ করানো হয় যে সেখানে আর থাকতে পারে না
সম্ভবত একটি মিল হতে পারে, শুধুমাত্র স্ট্রিংয়ের অংশটি প্রক্রিয়াটিতে পাঠানো হবে
সম্ভবত আরেকটি ম্যাচ শুরু করা যাবে না। সুতরাং, আংশিক সাবস্ট্রিং যে স্ট্রিং
মিলগুলি পরে মিলতে পারে, যদি মূল স্ট্রিংগুলি মেলে যাবার চেষ্টা করা হয়
শেষ পর্যন্ত ব্যর্থ হয়।

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

সার্জারির -রে পতাকা স্ট্রিংটিকে একটি regexp-শৈলী প্যাটার্ন হিসাবে ব্যাখ্যা করতে বাধ্য করে। এই
ক্ষেত্রে, ম্যাচিং সাবস্ট্রিংগুলি ভেরিয়েবলে সংরক্ষণ করা হয় ইন্টারঅ্যাক্ট_আউট অনুরূপভাবে
উপায় আশা করা ভেরিয়েবলে এর আউটপুট সঞ্চয় করে প্রত্যাশা_আউট. দ্য -সূচক পতাকা হয়
একইভাবে সমর্থিত।

নমুনা ফাইলের শেষে একটি ক্রিয়া প্রবর্তন করে যা ফাইলের শেষের উপর কার্যকর করা হয়। পৃথক
ফাইলের শেষে প্যাটার্ন এছাড়াও অনুসরণ করতে পারে -আউটপুট পতাকা কোন ক্ষেত্রে এটি মিলে যায় যদি একটি eof
আউটপুট লেখার সময় সনাক্ত করা হয়। ডিফল্ট ফাইলের শেষে কর্ম হল "রিটার্ন", যাতে
গর্ভনাটিকা যেকোন ইওএফ-এর উপর রিটার্ন করে।

নমুনা সময় শেষ একটি টাইমআউট (সেকেন্ডে) এবং ক্রিয়া সম্পাদন করা হয়
একটি নির্দিষ্ট সময়ের জন্য কোন অক্ষর পড়া না পরে. দ্য সময় শেষ প্যাটার্ন প্রযোজ্য
অতি সম্প্রতি নির্দিষ্ট প্রক্রিয়া। কোন ডিফল্ট সময়সীমা নেই. বিশেষ
পরিবর্তনশীল "টাইমআউট" (এর দ্বারা ব্যবহৃত আশা করা কমান্ড) এই সময়সীমার উপর কোন প্রভাব নেই।

উদাহরণস্বরূপ, নিম্নলিখিত বিবৃতিটি অটোলগআউট ব্যবহারকারীদের জন্য ব্যবহার করা যেতে পারে যারা নেই৷
এক ঘন্টার জন্য কিছু টাইপ করেছেন কিন্তু যারা এখনও ঘন ঘন সিস্টেম বার্তা পান:

ইন্টারঅ্যাক্ট -ইনপুট $user_spawn_id টাইমআউট 3600 রিটার্ন -আউটপুট
$spawn_id

প্যাটার্ন হলে কিওয়ার্ড হয় অকার্যকর, এবং নাল অনুমোদিত (এর মাধ্যমে রিমুভ_নাল
কমান্ড), একটি একক ASCII 0 মিলে গেলে সংশ্লিষ্ট বডিটি কার্যকর করা হয়। এইটা
গ্লোব বা regexp প্যাটার্নের মাধ্যমে 0 বাইট মেলানো সম্ভব নয়।

পতাকা সঙ্গে একটি প্যাটার্ন prefacing -আমি লিখি পরিবর্তনশীল ঘটায় ইন্টারঅ্যাক্ট_আউট(স্পন_আইডি)
প্যাটার্ন (বা eof) এর সাথে মিলে যাওয়া spawn_id-এ সেট করতে হবে।

কর্ম যেমন বিরতি এবং অবিরত কারণ নিয়ন্ত্রণ কাঠামো (যেমন, উন্নত , proc) থেকে
স্বাভাবিক ভাবে আচরণ করুন। যাহোক প্রত্যাবর্তন এর কলারে ফিরে যাওয়ার জন্য যোগাযোগ করে,
যখন ইন্টার_রিটার্ন কারণসমূহ গর্ভনাটিকা তার কলার মধ্যে একটি রিটার্ন কারণ. উদাহরণস্বরূপ, যদি
"proc foo" বলা হয় গর্ভনাটিকা যা পরে কর্ম সম্পাদন করে ইন্টার_রিটার্ন, proc foo বিন্যাস
ফিরে আসবে। (এর মানে হল যদি গর্ভনাটিকা কল অনুবাদক ইন্টারেক্টিভলি টাইপিং
প্রত্যাবর্তন ইন্টারঅ্যাক্ট চালিয়ে যেতে হবে, যখন ইন্টার_রিটার্ন কারণ হতে হবে
এর কলারে ফিরে যাওয়ার জন্য যোগাযোগ করুন।)

সময় গর্ভনাটিকা, raw মোড ব্যবহার করা হয় যাতে সমস্ত অক্ষর পাস করা যায়
চলতি প্রক্রিয়া. যদি বর্তমান প্রক্রিয়া কাজ নিয়ন্ত্রণ সংকেত না ধরা, এটা হবে
স্টপ সিগন্যাল পাঠানো হলে থামুন (ডিফল্ট ^Z)। এটি পুনরায় চালু করতে, একটি অবিরত সংকেত পাঠান
(যেমন "হত্যা -CONT দ্বারা ") যদি আপনি সত্যিই একটি SIGSTOP পাঠাতে চান যেমন একটি
প্রক্রিয়া (^Z দ্বারা), প্রথমে csh spawning এবং তারপর আপনার প্রোগ্রাম চালানো বিবেচনা করুন। উপরে
অন্য দিকে, যদি আপনি একটি SIGSTOP পাঠাতে চান আশা করা নিজেই, প্রথম কল দোভাষী
(সম্ভবত একটি এস্কেপ অক্ষর ব্যবহার করে), এবং তারপর ^Z টিপুন।

স্ট্রিং-বডি পেয়ারগুলি প্রবেশ করা এড়ানোর জন্য সংক্ষিপ্ত হস্ত হিসাবে ব্যবহার করা যেতে পারে
ইন্টারপ্রেটার এবং ইন্টারেক্টিভভাবে কমান্ড চালান। পূর্ববর্তী টার্মিনাল মোড ব্যবহার করা হয়
যখন একটি স্ট্রিং-বডি পেয়ারের শরীর কার্যকর করা হচ্ছে।

গতির জন্য, কর্মগুলি ডিফল্টরূপে কাঁচা মোডে সঞ্চালিত হয়। দ্য -রিসেট পতাকা রিসেট করে
টার্মিনাল মোডে এটি আগে ছিল গর্ভনাটিকা কার্যকর করা হয়েছিল (অনিয়ত, রান্না করা মোড)।
নোট করুন যে মোডটি স্যুইচ করার সময় প্রবেশ করা অক্ষরগুলি হারিয়ে যেতে পারে (এক
কিছু সিস্টেমে টার্মিনাল ড্রাইভারের দুর্ভাগ্যজনক বৈশিষ্ট্য)। ব্যবহার করার একমাত্র কারণ
-রিসেট যদি আপনার কাজ রান্না করা মোডে চালানোর উপর নির্ভর করে।

সার্জারির -প্রতিধ্বনি পতাকা নিম্নলিখিত প্যাটার্নের সাথে মেলে এমন অক্ষরগুলিকে প্রক্রিয়ায় ফেরত পাঠায়
প্রতিটি অক্ষর পড়া হয় যে তাদের উত্পন্ন. এই ব্যবহারকারী যখন দরকারী হতে পারে
আংশিকভাবে টাইপ করা নিদর্শন থেকে প্রতিক্রিয়া দেখতে হবে।

যদি একটি প্যাটার্ন প্রতিধ্বনিত হয় কিন্তু শেষ পর্যন্ত মেলে না, অক্ষর পাঠানো হয়
উদ্ভূত প্রক্রিয়ার কাছে। যদি জন্মানো প্রক্রিয়াটি তাদের প্রতিধ্বনিত করে, ব্যবহারকারী দেখতে পাবে
অক্ষর দুইবার. -প্রতিধ্বনি সম্ভবত শুধুমাত্র এমন পরিস্থিতিতে উপযুক্ত যেখানে
ব্যবহারকারী প্যাটার্ন সম্পূর্ণ না করার সম্ভাবনা কম। উদাহরণস্বরূপ, নিম্নলিখিত উদ্ধৃতি হল
rftp থেকে, পুনরাবৃত্ত-এফটিপি স্ক্রিপ্ট, যেখানে ব্যবহারকারীকে ~g, ~p, বা প্রবেশ করতে বলা হয়
~l, বর্তমান ডিরেক্টরিটি বারবার পেতে, রাখতে বা তালিকাভুক্ত করতে। এগুলো তো দূরের কথা
সাধারণ ftp কমান্ড থেকে, যে ব্যবহারকারীর ~ এর পরে টাইপ করার সম্ভাবনা নেই
অন্য কিছু, ভুলবশত ছাড়া, যে ক্ষেত্রে, তারা সম্ভবত শুধু উপেক্ষা করব
যাইহোক ফলাফল।

যোগাযোগ {
-echo ~g {getcurdirectory 1}
-ইকো ~l {getcurdirectory 0}
-echo ~p {putcurdirectory}
}

সার্জারির -নোবাফার পতাকা নিচের প্যাটার্নের সাথে মেলে এমন অক্ষর পাঠায়
অক্ষর পড়া হয় হিসাবে আউটপুট প্রক্রিয়া.

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

proc লগ নম্বর {} {
ইন্টারঅ্যাক্ট -nobuffer -re "(.*)\r" রিটার্ন
$log রাখে "[ঘড়ির বিন্যাস [ঘড়ির সেকেন্ড]]: ডায়াল করা $interact_out(1,string)"
}

ইন্টারঅ্যাক্ট -নোবাফার "এটিডি" লগ নম্বর

সময় গর্ভনাটিকা, পূর্ববর্তী ব্যবহার লগ_ব্যবহারকারী উপেক্ষা করা হয়। নির্দিষ্টভাবে, গর্ভনাটিকা ইচ্ছা
এটির আউটপুটকে লগ করতে বাধ্য করুন (স্ট্যান্ডার্ড আউটপুটে পাঠানো হয়েছে) যেহেতু এটি অনুমান করা হয়
ব্যবহারকারী অন্ধভাবে ইন্টারঅ্যাক্ট করতে চান না।

সার্জারির -o পতাকার কারণে নিম্নলিখিত কী-বডি জোড়ার আউটপুটে প্রয়োগ করা হয়
চলতি প্রক্রিয়া. এটি দরকারী হতে পারে, উদাহরণস্বরূপ, পাঠানো হোস্টগুলির সাথে ডিল করার সময়
একটি টেলনেট সেশনের সময় অবাঞ্ছিত অক্ষর।

গতানুগতিক, গর্ভনাটিকা ব্যবহারকারী stdin লিখতে এবং stdout পড়তে আশা করে
আশা করা প্রক্রিয়া নিজেই। দ্য -u পতাকা ("ব্যবহারকারী" এর জন্য) তৈরি করে গর্ভনাটিকা হিসাবে ব্যবহারকারীর জন্য সন্ধান করুন
প্রক্রিয়াটি তার আর্গুমেন্ট দ্বারা নামকরণ করা হয়েছে (যা অবশ্যই একটি উদ্ভাবিত আইডি হতে হবে)।

এটি একটি সুস্পষ্ট ব্যবহার না করে দুটি সম্পর্কহীন প্রক্রিয়াকে একসাথে যুক্ত করার অনুমতি দেয়
লুপ. ডিবাগিং এ সাহায্য করার জন্য, এক্সপেক্ট ডায়াগনস্টিকস সবসময় stderr (অথবা stdout for
নির্দিষ্ট লগিং এবং ডিবাগিং তথ্য)। একই কারণে, দ অনুবাদক
কমান্ড stdin থেকে ইন্টারেক্টিভভাবে পড়বে।

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

স্পন লগইন
লগইন $spawn_id সেট করুন
স্পন টিপ মডেম
# ব্যবহারকারীর কাছে ব্যাক আউট ডায়াল করুন
# লগইন করার জন্য ব্যবহারকারীকে সংযুক্ত করুন
ইন্টারঅ্যাক্ট -u $ লগইন

একাধিক প্রসেসে আউটপুট পাঠাতে, প্রতিটি স্পন আইডি তালিকার পূর্বে a দ্বারা তালিকাভুক্ত করুন -আউটপুট
পতাকা আউটপুট স্পন আইডিগুলির একটি গ্রুপের জন্য ইনপুট একটি স্পন আইডি তালিকা দ্বারা নির্ধারিত হতে পারে
একটি দ্বারা prefaxed -ইনপুট পতাকা (উভয় -ইনপুট এবং -আউটপুট একই ফর্ম তালিকা নিতে পারে
যেমন -i মধ্যে পতাকা আশা করা কমান্ড, যে ব্যতীত any_spawn_id অর্থপূর্ণ নয়
গর্ভনাটিকা.) সমস্ত নিম্নলিখিত পতাকা এবং স্ট্রিং (বা নিদর্শন) এই ইনপুট পর্যন্ত প্রযোজ্য
অন্য একটি ইনপুট পতাকা প্রদর্শিত হবে। আপনি উত্তর দিবেন না -ইনপুট প্রদর্শিত হয়, -আউটপুট বোঝায় "-ইনপুট
$user_spawn_id -আউটপুট। (একইভাবে, প্যাটার্নের সাথে যা নেই -ইনপুট.) যদি
এক -ইনপুট নির্দিষ্ট করা আছে, এটি $user_spawn_id ওভাররাইড করে। যদি এক সেকেন্ড -ইনপুট is
নির্দিষ্ট করা হয়েছে, এটি $spawn_id ওভাররাইড করে। অতিরিক্ত -ইনপুট পতাকা নির্দিষ্ট করা যেতে পারে।

দুটি উহ্য ইনপুট প্রক্রিয়া ডিফল্ট তাদের আউটপুট হিসাবে নির্দিষ্ট করা আছে
$spawn_id এবং $user_spawn_id (বিপরীতভাবে)। যদি একটি -ইনপুট পতাকা নেই সঙ্গে প্রদর্শিত হবে -আউটপুট
পতাকা, যে প্রক্রিয়া থেকে অক্ষর বাতিল করা হয়.

সার্জারির -i পতাকা বর্তমান spawn_id এর জন্য একটি প্রতিস্থাপন প্রবর্তন করে যখন অন্য কোনটি নেই -ইনপুট
or -আউটপুট পতাকা ব্যবহার করা হয়। A -i পতাকা বোঝায় a -o পতাকা।

এটি ব্যবহার করে যে প্রক্রিয়াগুলির সাথে ইন্টারঅ্যাক্ট করা হচ্ছে তা পরিবর্তন করা সম্ভব
পরোক্ষ স্পন আইডি (পরোক্ষ স্পন আইডিগুলি প্রত্যাশার বিভাগে বর্ণিত হয়েছে
কমান্ড।) পরোক্ষ স্পন আইডিগুলি -i, -u, -ইনপুট, বা -আউটপুট দিয়ে নির্দিষ্ট করা যেতে পারে
পতাকা।

অনুবাদক [আর্গস]
ব্যবহারকারীকে ইন্টারেক্টিভভাবে অনুরোধ জানানোর কারণ আশা করা এবং Tcl কমান্ড। দ্য
প্রতিটি কমান্ডের ফলাফল মুদ্রিত হয়।

কর্ম যেমন বিরতি এবং অবিরত কারণ নিয়ন্ত্রণ কাঠামো (যেমন, উন্নত , proc) থেকে
স্বাভাবিক ভাবে আচরণ করুন। যাহোক প্রত্যাবর্তন দোভাষীকে তার কলারে ফিরে যেতে দেয়,
যখন ইন্টার_রিটার্ন কারণসমূহ অনুবাদক তার কলার মধ্যে একটি রিটার্ন কারণ. উদাহরণ স্বরূপ,
যদি "proc foo" বলা হয় অনুবাদক যা পরে কর্ম সম্পাদন করে ইন্টার_রিটার্ন, proc
foo বিন্যাস ফিরে আসবে। অন্য কোন আদেশ কারণ অনুবাদক জন্য অনুরোধ করা চালিয়ে যেতে
নতুন কমান্ড।

ডিফল্টরূপে, প্রম্পটে দুটি পূর্ণসংখ্যা থাকে। প্রথম পূর্ণসংখ্যা গভীরতা বর্ণনা করে
মূল্যায়ন স্ট্যাকের (অর্থাৎ, কতবার Tcl_Eval বলা হয়েছে)। দ্বিতীয়
পূর্ণসংখ্যা হল Tcl ইতিহাস শনাক্তকারী। একটি সংজ্ঞায়িত করে প্রম্পট সেট করা যেতে পারে
"prompt1" নামক পদ্ধতি যার রিটার্ন মান পরবর্তী প্রম্পটে পরিণত হয়। যদি একটি
বিবৃতিতে খোলা উদ্ধৃতি, বন্ধনী, বন্ধনী বা বন্ধনী রয়েছে, একটি সেকেন্ডারি প্রম্পট (দ্বারা
ডিফল্ট "+>") নতুন লাইনে জারি করা হয়। সেকেন্ডারি প্রম্পট সংজ্ঞায়িত করে সেট করা যেতে পারে
"prompt2" নামে একটি পদ্ধতি।

সময় অনুবাদক, রান্না করা মোড ব্যবহার করা হয়, এমনকি যদি এর কলার কাঁচা মোড ব্যবহার করে থাকে।

যদি stdin বন্ধ থাকে, অনুবাদক ফিরে আসবে যদি না -eof পতাকা ব্যবহার করা হয়, যার মধ্যে
ক্ষেত্রে পরবর্তী যুক্তি আহ্বান করা হয়.

লগ ফাইল [আর্গস] [[-ক] ফাইল]
যদি একটি ফাইলের নাম দেওয়া হয়, লগ ফাইল সেশনের একটি প্রতিলিপি রেকর্ড করবে
(সেই বিন্দু থেকে শুরু) ফাইলে। লগ ফাইল কোনো যুক্তি না থাকলে রেকর্ডিং বন্ধ করবে
দেওয়া হয়. কোনো পূর্ববর্তী লগ ফাইল বন্ধ.

একটি ফাইলের নামের পরিবর্তে, একটি Tcl ফাইল সনাক্তকারী ব্যবহার করে প্রদান করা যেতে পারে -পেন or
-খোলা রাখো পতাকা এই অনুরূপ স্প্যান আদেশ (দেখা স্প্যান আরও তথ্যের জন্য.)

সার্জারির -a পতাকা জোর করে আউটপুট লগ করা যা দ্বারা দমন করা হয়েছে লগ_ব্যবহারকারী কমান্ড।

ডিফল্টরূপে, লগ ফাইল হুকুম সংযোজন পুরানো ফাইলগুলিকে ছেঁটে ফেলার পরিবর্তে,
একের মধ্যে একাধিকবার লগিং বন্ধ এবং চালু করতে সক্ষম হওয়ার সুবিধার জন্য
সেশন. ফাইল ছাঁটাই করতে, ব্যবহার করুন -noappend পতাকা।

সার্জারির -তথ্য পতাকার কারণে log_file সাম্প্রতিকতম অ-তথ্যের বিবরণ ফেরত দেয়
যুক্তি দেওয়া হয়েছে।

লগ_ব্যবহারকারী -তথ্য|0|1
ডিফল্টরূপে, পাঠান/প্রত্যাশিত কথোপকথন stdout এ লগ করা হয় (এবং একটি লগফাইল খোলা থাকলে)।
stdout এ লগিং "log_user 0" কমান্ড দ্বারা নিষ্ক্রিয় করা হয়েছে এবং এর দ্বারা পুনরায় সক্ষম করা হয়েছে
"log_user 1"। লগফাইলে লগিং অপরিবর্তিত।

সার্জারির -তথ্য পতাকার কারণে log_user সাম্প্রতিকতম অ-তথ্যের একটি বিবরণ ফেরত দেয়
যুক্তি দেওয়া হয়েছে।

ম্যাচ_সর্বোচ্চ [-ঘ] [-আমি spawn_id] [আকার]
দ্বারা অভ্যন্তরীণভাবে ব্যবহৃত বাফারের আকার (বাইটে) সংজ্ঞায়িত করে আশা করা. সঙ্গে নেই আয়তন
যুক্তি, বর্তমান আকার ফেরত দেওয়া হয়.

সঙ্গে সঙ্গে -d পতাকা, ডিফল্ট আকার সেট করা হয়। (প্রাথমিক ডিফল্ট হল 2000।) এর সাথে
-i পতাকা, নামযুক্ত স্পন আইডির জন্য আকার সেট করা হয়, অন্যথায় এটি বর্তমানের জন্য সেট করা হয়
প্রক্রিয়া।

উপরে পাতা [-# spawn_id] [-# spawn_id] [...] কার্যক্রম [আর্গস]
চালায় কার্যক্রম args স্রোতের জায়গায় আশা করা প্রোগ্রাম, যা শেষ হয়। ক
বেয়ার হাইফেন আর্গুমেন্ট কমান্ড নামের সামনে একটি হাইফেন জোর করে যেন এটি একটি
লগইন শেল। আর্গুমেন্ট হিসাবে নাম দেওয়া ছাড়া সমস্ত spawn_ids বন্ধ। এইগুলো
নামযুক্ত ফাইল শনাক্তকারীর সাথে ম্যাপ করা হয়।

Spawn_ids নতুন প্রোগ্রামের উত্তরাধিকারের জন্য ফাইল শনাক্তকারীর সাথে ম্যাপ করা হয়। জন্য
উদাহরণস্বরূপ, নিম্নলিখিত লাইনটি দাবা চালায় এবং এটি কারেন্ট দ্বারা নিয়ন্ত্রিত হতে দেয়
প্রক্রিয়া - বলুন, একজন দাবা মাস্টার।

ওভারলে -0 $spawn_id -1 $spawn_id -2 $spawn_id দাবা

এটি "ইন্টার্যাক্ট -ইউ" এর চেয়ে বেশি দক্ষ, তবে এটি করার ক্ষমতাকে ত্যাগ করে
থেকে প্রোগ্রাম মিথস্ক্রিয়া আশা করা প্রক্রিয়া আর নিয়ন্ত্রণে নেই।

উল্লেখ্য যে কোন কন্ট্রোলিং টার্মিনাল দেওয়া নেই। এইভাবে, যদি আপনি সংযোগ বিচ্ছিন্ন বা রিম্যাপ
স্ট্যান্ডার্ড ইনপুট, যে প্রোগ্রামগুলি কাজ নিয়ন্ত্রণ করে (শেলস, লগইন, ইত্যাদি) কাজ করবে না
সঠিকভাবে।

সমতা [-ঘ] [-আমি spawn_id] [মান]
প্যারিটি ধরে রাখা উচিত নাকি স্পনডের আউটপুট থেকে ছিনিয়ে নেওয়া উচিত তা নির্ধারণ করে
প্রসেস যদি মূল্য শূন্য, সমতা ছিনতাই করা হয়, অন্যথায় এটি ছিনতাই করা হয় না।
না দিয়ে মূল্য যুক্তি, বর্তমান মান প্রদান করা হয়।

সঙ্গে সঙ্গে -d পতাকা, ডিফল্ট প্যারিটি মান সেট করা হয়। (প্রাথমিক ডিফল্ট হল 1, অর্থাৎ,
সমতা ছিনতাই করা হয় না।) সঙ্গে -i পতাকা, সমতা মান নামের জন্য সেট করা হয়
spawn id, অন্যথায় এটি বর্তমান প্রক্রিয়ার জন্য সেট করা হয়।

রিমুভ_নাল [-ঘ] [-আমি spawn_id] [মান]
স্পন করা প্রক্রিয়ার আউটপুট থেকে নালগুলি ধরে রাখা বা সরানো হয়েছে কিনা তা নির্ধারণ করে
ভেরিয়েবলে প্যাটার্ন ম্যাচিং বা স্টোর করার আগে প্রত্যাশা_আউট or ইন্টারঅ্যাক্ট_আউট। যদি
মূল্য হল 1, নাল মুছে ফেলা হয়। যদি মূল্য হল 0, নালগুলি সরানো হয় না। সঙ্গে নেই মূল্য
যুক্তি, বর্তমান মান প্রদান করা হয়।

সঙ্গে সঙ্গে -d পতাকা, ডিফল্ট মান সেট করা হয়। (প্রাথমিক ডিফল্ট হল 1, অর্থাৎ, নাল
সরানো হয়।) এর সাথে -i পতাকা, অন্যথায় নামযুক্ত স্পন আইডির জন্য মান সেট করা হয়
এটি বর্তমান প্রক্রিয়ার জন্য সেট করা হয়েছে।

নাল অপসারণ করা হয় কি না, আশা করা লগে নাল বাইট রেকর্ড করবে এবং
stdout

পাঠান [-পতাকা] স্ট্রিং
প্রেরণ স্ট্রিং বর্তমান প্রক্রিয়ায়। উদাহরণস্বরূপ, কমান্ড

"হ্যালো ওয়ার্ল্ড\r" পাঠান

অক্ষর পাঠায়, হ্যালো বিশ্ব বর্তমান প্রক্রিয়ায়।
(Tcl একটি printf-এর মতো কমান্ড অন্তর্ভুক্ত করে (যাকে বলা হয় বিন্যাস) যা নির্বিচারে নির্মাণ করতে পারে
জটিল স্ট্রিং।)

অক্ষরগুলি অবিলম্বে পাঠানো হয় যদিও লাইন-বাফার ইনপুট সহ প্রোগ্রামগুলি হবে না
একটি রিটার্ন অক্ষর পাঠানো না হওয়া পর্যন্ত অক্ষরগুলি পড়ুন। একটি প্রত্যাবর্তন অক্ষর চিহ্নিত করা হয়
"\r"

সার্জারির -- পতাকা পরবর্তী যুক্তিকে a এর পরিবর্তে একটি স্ট্রিং হিসাবে ব্যাখ্যা করতে বাধ্য করে
পতাকা যেকোন স্ট্রিং এর আগে "--" হতে পারে তা আসলে a এর মত দেখায় কি না
পতাকা এটি ভেরিয়েবল স্ট্রিং ছাড়াই নির্দিষ্ট করার জন্য একটি নির্ভরযোগ্য প্রক্রিয়া প্রদান করে
ঘটনাক্রমে পতাকা মত চেহারা যারা দ্বারা tripped. (সব স্ট্রিং দিয়ে শুরু
"-" ভবিষ্যতের বিকল্পগুলির জন্য সংরক্ষিত।)

সার্জারির -i পতাকা ঘোষণা করে যে স্ট্রিংটি নামিত spawn_id-এ পাঠানো হবে। যদি spawn_id
is user_spawn_id, এবং টার্মিনাল কাঁচা মোডে আছে, স্ট্রিং-এ নতুন লাইন আছে
রিটার্ন-নতুন লাইনের সিকোয়েন্সে অনুবাদ করা হয়েছে যাতে তারা মনে হয় যেন টার্মিনাল আছে
রান্না মোড। দ্য -কাঁচা পতাকা এই অনুবাদ অক্ষম করে।

সার্জারির -খালি পতাকা শূন্য অক্ষর পাঠায় (0 বাইট)। ডিফল্টরূপে, একটি নাল পাঠানো হয়. একটি
পূর্ণসংখ্যা অনুসরণ করতে পারে -খালি কতটি নাল পাঠাতে হবে তা নির্দেশ করতে।

সার্জারির - বিরতি পতাকা একটি বিরতি অবস্থা তৈরি করে। এটি শুধুমাত্র স্প্যান আইডি হলেই বোঝা যায়
"স্পন-ওপেন" এর মাধ্যমে খোলা একটি tty ডিভাইসকে বোঝায়। আপনি যেমন একটি প্রক্রিয়া spawned আছে
টিপ হিসাবে, আপনার বিরতি তৈরির জন্য টিপের কনভেনশন ব্যবহার করা উচিত।

সার্জারির -s পতাকা আউটপুটকে "ধীরে ধীরে" পাঠানোর জন্য বাধ্য করে, এইভাবে সাধারণ পরিস্থিতি এড়িয়ে চলুন যেখানে
একটি কম্পিউটার এমন একটি ইনপুট বাফারকে ছাড়িয়ে যায় যা এমন একজন মানুষের জন্য ডিজাইন করা হয়েছিল যে কখনই করবে না
একই বাফার আউটটাইপ করুন। এই আউটপুট ভেরিয়েবলের মান দ্বারা নিয়ন্ত্রিত হয়
"send_slow" যা একটি দুটি উপাদান তালিকা নেয়। প্রথম উপাদান একটি পূর্ণসংখ্যা যে
পারমাণবিকভাবে পাঠাতে বাইটের সংখ্যা বর্ণনা করে। দ্বিতীয় উপাদান একটি বাস্তব
সংখ্যা যেটি সেকেন্ডের সংখ্যা বর্ণনা করে যার দ্বারা পারমাণবিক প্রেরণ করা আবশ্যক
পৃথক উদাহরণস্বরূপ, "send_slow সেট করুন {10 .001}" পাঠাতে বাধ্য করবে "send -s"
পাঠানো প্রতিটি 1টি অক্ষরের মধ্যে 10 মিলিসেকেন্ড সহ স্ট্রিং।

সার্জারির -h পতাকা আউটপুট পাঠাতে বাধ্য করে (কিছুটা) যেমন একজন মানুষ আসলে টাইপ করে।
চরিত্রের মধ্যে মানুষের মত বিলম্ব প্রদর্শিত হয়. (অ্যালগরিদমটি a এর উপর ভিত্তি করে
Weibull বিতরণ, এই বিশেষ অ্যাপ্লিকেশন অনুসারে পরিবর্তন সহ।) এটি
আউটপুট ভেরিয়েবল "send_human" এর মান দ্বারা নিয়ন্ত্রিত হয় যা একটি পাঁচ লাগে
উপাদান তালিকা। প্রথম দুটি উপাদান হল অক্ষরের গড় আন্তঃ আগমনের সময়
সেকেন্ড প্রথমটি ডিফল্টরূপে ব্যবহৃত হয়। দ্বিতীয়টি শব্দের শেষে ব্যবহৃত হয়, to
সূক্ষ্ম বিরতিগুলি অনুকরণ করুন যা মাঝে মাঝে এই ধরনের ট্রানজিশনে ঘটে। তৃতীয়
প্যারামিটার হল পরিবর্তনশীলতার একটি পরিমাপ যেখানে .1 বেশ পরিবর্তনশীল, 1 যুক্তিসঙ্গতভাবে
পরিবর্তনশীল, এবং 10 বেশ অপরিবর্তনীয়। চরম 0 থেকে অসীম হয়. শেষ দুটি
পরামিতি হল, যথাক্রমে, একটি সর্বনিম্ন এবং সর্বাধিক অন্তর্বর্তী সময়। নুন্যতম
এবং সর্বাধিক ব্যবহার করা হয় শেষ এবং "ক্লিপ" চূড়ান্ত সময়। চূড়ান্ত গড় হতে পারে
প্রদত্ত গড় থেকে বেশ ভিন্ন যদি সর্বনিম্ন এবং সর্বাধিক ক্লিপ যথেষ্ট
মান।

একটি উদাহরণ হিসাবে, নিম্নলিখিত কমান্ডটি একটি দ্রুত এবং সামঞ্জস্যপূর্ণ টাইপিস্টকে অনুকরণ করে:

পাঠান_মানব সেট করুন {.1 .3 1 .05 2}
send -h "আমি ক্ষুধার্ত। চলো লাঞ্চ করি।"

যখন হ্যাংওভারের পরে নিম্নলিখিতগুলি আরও উপযুক্ত হতে পারে:

পাঠান_মানব সেট করুন {.4 .4 .2 .5 100}
পাঠান -h "গুড পার্টি ল্যাশ নাইট!"

মনে রাখবেন যে ত্রুটিগুলি সিমুলেটেড নয়, যদিও আপনি ত্রুটি সংশোধন সেট আপ করতে পারেন৷
সেন্ড আর্গুমেন্টে ভুল এবং সংশোধন এম্বেড করে নিজেকে পরিস্থিতি তৈরি করুন।

শূন্য অক্ষর পাঠানোর জন্য, বিরতি পাঠানোর জন্য, ধীর আউটপুট জোর করার জন্য পতাকা
এবং মানব-শৈলীর আউটপুট পারস্পরিকভাবে একচেটিয়া। শুধুমাত্র একটি নির্দিষ্ট শেষ ইচ্ছা
ব্যবহার করা. উপরন্তু, না স্ট্রিং আর্গুমেন্ট পাঠানোর জন্য পতাকা দিয়ে নির্দিষ্ট করা যেতে পারে
নাল অক্ষর বা বিরতি।

এটি একটি ভাল ধারণা প্রথম আগে পাঠান একটি দ্বারা একটি প্রক্রিয়া আশা করা. আশা করা ইচ্ছা
প্রক্রিয়া শুরু করার জন্য অপেক্ষা করুন, যখন পাঠান না পারেন. বিশেষ করে, প্রথম হলে পাঠান
প্রক্রিয়া চলা শুরু হওয়ার আগে সম্পূর্ণ হয়, আপনি আপনার ডেটা থাকার ঝুঁকি চালান
উপেক্ষা করা এমন পরিস্থিতিতে যেখানে ইন্টারেক্টিভ প্রোগ্রামগুলি কোনও প্রাথমিক প্রম্পট দেয় না, আপনি করতে পারেন
পূর্ববর্তী হত্তয়া পাঠান একটি বিলম্ব দ্বারা যেমন:

# হ্যাকারদের কীভাবে ব্রেক করতে হয় তার ইঙ্গিত দেওয়া এড়াতে,
# এই সিস্টেমটি একটি বহিরাগত পাসওয়ার্ডের জন্য অনুরোধ করে না।
# exec সম্পূর্ণ হওয়ার জন্য 5 সেকেন্ডের জন্য অপেক্ষা করুন
spawn telnet very.secure.gov
ঘুম 5
পাসওয়ার্ড পাঠান\r

exp_send জন্য একটি উপনাম হয় পাঠান. আপনি যদি Expectk বা এর অন্য কোনো ভেরিয়েন্ট ব্যবহার করেন
টাকার পরিবেশে প্রত্যাশা করুন, পাঠান সম্পূর্ণ ভিন্ন একটি জন্য Tk দ্বারা সংজ্ঞায়িত করা হয়
উদ্দেশ্য। exp_send পরিবেশের মধ্যে সামঞ্জস্যের জন্য প্রদান করা হয়। অনুরূপ
অন্য এক্সপেক্টের অন্যান্য পাঠান কমান্ডের জন্য উপনাম প্রদান করা হয়।

send_error [-পতাকা] স্ট্রিং
মত পাঠান, আউটপুটটি কারেন্টের পরিবর্তে stderr এ পাঠানো হয়
প্রক্রিয়া।

send_log [--] স্ট্রিং
মত পাঠান, স্ট্রিংটি শুধুমাত্র লগ ফাইলে পাঠানো হয় তা ছাড়া (দেখুন লগ ফাইল.)
কোনো লগ ফাইল খোলা না থাকলে আর্গুমেন্ট উপেক্ষা করা হয়।

send_tty [-পতাকা] স্ট্রিং
মত পাঠান, আউটপুটটি কারেন্টের পরিবর্তে /dev/tty এ পাঠানো হয়
প্রক্রিয়া।

send_user [-পতাকা] স্ট্রিং
মত পাঠান, আউটপুটটি কারেন্টের পরিবর্তে stdout এ পাঠানো হয়
প্রক্রিয়া।

ঘুম সেকেন্ড
প্রদত্ত সেকেন্ডের জন্য স্ক্রিপ্টটিকে ঘুমাতে দেয়। সেকেন্ড হতে পারে a
দশমিক সংখ্যা. ইন্টারাপ্ট (এবং Tk ইভেন্ট যদি আপনি Expectk ব্যবহার করেন) প্রক্রিয়া করা হয়
যখন প্রত্যাশা ঘুমায়।

স্প্যান [আর্গস] কার্যক্রম [আর্গস]
চলমান একটি নতুন প্রক্রিয়া তৈরি করে কার্যক্রম args. এর stdin, stdout এবং stderr হল
প্রত্যাশার সাথে সংযুক্ত, যাতে সেগুলি অন্যদের দ্বারা পড়তে এবং লিখতে পারে আশা করা কমান্ড।
দ্বারা সংযোগ বিচ্ছিন্ন হয় ঘনিষ্ঠ অথবা যদি প্রক্রিয়া নিজেই কোনো ফাইল বন্ধ করে দেয়
শনাক্তকারী

যখন একটি প্রক্রিয়া শুরু হয় স্প্যান, পরিবর্তনশীল spawn_id একটি বর্ণনাকারী সেট করা হয়
সেই প্রক্রিয়া উল্লেখ করে। দ্বারা বর্ণিত প্রক্রিয়া spawn_id বিবেচনা করা হয়
বর্তমান প্রক্রিয়া. spawn_id পড়া বা লেখা হতে পারে, কার্যকরভাবে কাজ নিয়ন্ত্রণ প্রদান করে।

user_spawn_id একটি গ্লোবাল ভেরিয়েবল হল একটি বর্ণনাকারী যা ব্যবহারকারীকে বোঝায়।
উদাহরণস্বরূপ, যখন spawn_id এই মান সেট করা হয়, আশা করা মত আচরণ করে প্রত্যাশা_ব্যবহারকারী.

error_spawn_id একটি গ্লোবাল ভেরিয়েবল যা একটি বর্ণনাকারী যা বোঝায়
মান ত্রুটি. উদাহরণস্বরূপ, যখন spawn_id এই মান সেট করা হয়, পাঠান মত আচরণ করে
send_error.

tty_spawn_id একটি গ্লোবাল ভেরিয়েবল হল একটি বর্ণনাকারী যা /dev/tty বোঝায়।
যদি /dev/tty বিদ্যমান না থাকে (যেমন একটি cron, at, বা ব্যাচ স্ক্রিপ্টে), তাহলে
tty_spawn_id সংজ্ঞায়িত করা হয় নি. এটি এইভাবে পরীক্ষা করা যেতে পারে:

যদি {[info vars tty_spawn_id]} {
# /dev/tty বিদ্যমান
} অন্য {
# /dev/tty বিদ্যমান নেই
# সম্ভবত ক্রন, ব্যাচ বা স্ক্রিপ্টে
}

স্প্যান ইউনিক্স প্রসেস আইডি ফেরত দেয়। যদি কোনো প্রক্রিয়া না হয়, 0 ফেরত দেওয়া হয়। দ্য
পরিবর্তনশীল স্পন_আউট (দাস, নাম) pty স্লেভ ডিভাইসের নামে সেট করা আছে।

গতানুগতিক, স্প্যান কমান্ডের নাম এবং আর্গুমেন্টের প্রতিধ্বনি করে। দ্য -নোইকো পতাকা থামে
স্প্যান এই কাজ থেকে

সার্জারির -console ফ্ল্যাগ কনসোল আউটপুটকে উদ্ভূত প্রক্রিয়াতে পুনঃনির্দেশিত করে।
এটি সব সিস্টেমে সমর্থিত নয়।

অভ্যন্তরীণভাবে, স্প্যান একটি pty ব্যবহার করে, ব্যবহারকারীর tty হিসাবে একইভাবে শুরু হয়। এই
আরও আরম্ভ করা হয়েছে যাতে সমস্ত সেটিংস "সঠিক" হয় (অনুসারে stty(1))। যদি
পরিবর্তনশীল stty_init সংজ্ঞায়িত করা হয়, এটি stty আর্গুমেন্টের স্টাইলে ব্যাখ্যা করা হয়
আরও কনফিগারেশন। উদাহরণস্বরূপ, "stty_init raw সেট করুন" আরও জন্ম দেবে
প্রসেস এর টার্মিনাল কাঁচা মোডে শুরু হয়। -নোটিকপি আরম্ভ করা এড়িয়ে যায়
ব্যবহারকারীর tty এর উপর ভিত্তি করে। -nottyinit "বুদ্ধিমান" আরম্ভ করা এড়িয়ে যায়।

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

If কার্যক্রম সফলভাবে জন্মানো যাবে না কারণ Exec(2) ব্যর্থ হয় (যেমন যখন কার্যক্রম
বিদ্যমান নেই), একটি ত্রুটি বার্তা পরের দ্বারা ফিরে আসবে গর্ভনাটিকা or আশা করা
আদেশ যেন কার্যক্রম চালানো এবং আউটপুট হিসাবে ত্রুটি বার্তা উত্পাদিত ছিল. এই
আচরণ বাস্তবায়নের একটি স্বাভাবিক পরিণতি স্প্যান. অভ্যন্তরীণভাবে, স্পন
কাঁটা, যার পরে উদ্ভূত প্রক্রিয়াটির মূলের সাথে যোগাযোগ করার কোন উপায় নেই
আশা করা spawn_id এর মাধ্যমে যোগাযোগ ছাড়া প্রক্রিয়া।

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

সার্জারির -pty পতাকা একটি pty খোলার কারণ হয় কিন্তু কোন প্রক্রিয়া তৈরি হয় না। 0 এ ফেরত দেওয়া হয়
কোন সংশ্লিষ্ট প্রক্রিয়া নেই নির্দেশ করে। Spawn_id যথারীতি সেট করা হয়েছে।

পরিবর্তনশীল spawn_out(স্লেভ,এফডি) এর সাথে সম্পর্কিত একটি ফাইল শনাক্তকারীতে সেট করা হয়েছে
pty দাস। এটি "close-slave" ব্যবহার করে বন্ধ করা যেতে পারে।

সার্জারির - উপেক্ষা করুন পতাকা একটি সংকেত নাম দেয় যা উদ্ভূত প্রক্রিয়ায় উপেক্ষা করা হবে। অন্যথায়,
সংকেত ডিফল্ট আচরণ পায়। সংকেত হিসাবে নামকরণ করা হয় ফাঁদ আদেশ, ছাড়া
যে প্রতিটি সংকেতের জন্য একটি পৃথক পতাকা প্রয়োজন।

স্ট্রেস স্তর
মৃত্যুদন্ড কার্যকর করার আগে নিম্নলিখিত বিবৃতিগুলি প্রিন্ট করা হয়। (Tcl এর ট্রেস
কমান্ড ভেরিয়েবল ট্রেস করে।) স্তর কল স্ট্যাকে কতটা নিচে ট্রেস করতে হবে তা নির্দেশ করে।
উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি চলে আশা করা প্রথম 4 স্তর ট্রেসিং যখন
কল করে, কিন্তু তার নিচে নেই।

expect -c "strace 4" script.exp

সার্জারির -তথ্য পতাকা স্ট্রেসকে সাম্প্রতিকতম অ-তথ্যের একটি বিবরণ ফেরত দেয়
যুক্তি দেওয়া হয়েছে।

stty args
বাহ্যিক stty কমান্ডের অনুরূপভাবে টার্মিনাল মোড পরিবর্তন করে।

ডিফল্টরূপে, কন্ট্রোলিং টার্মিনাল অ্যাক্সেস করা হয়। অন্যান্য টার্মিনাল অ্যাক্সেস করা যেতে পারে
কমান্ডে "< /dev/tty..." যুক্ত করে। (উল্লেখ্য যে আর্গুমেন্ট হওয়া উচিত নয়
একটি একক যুক্তিতে গোষ্ঠীবদ্ধ।)

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

উদাহরণস্বরূপ, যুক্তি কাঁচা or -সিদ্ধ টার্মিনালটিকে কাঁচা মোডে রাখুন। দ্য
আর্গুমেন্ট -কাঁচা or সিদ্ধ টার্মিনালটিকে রান্না করা মোডে রাখুন। যুক্তিগুলো প্রতিধ্বনি এবং
-প্রতিধ্বনি টার্মিনালটিকে যথাক্রমে ইকো এবং নোইকো মোডে রাখুন।

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

stty - echo
send_user "পাসওয়ার্ড:"
প্রত্যাশা_ব্যবহারকারী -পুনরায় "(.*)\n"
পাসওয়ার্ড সেট করুন $expect_out(1,স্ট্রিং)
stty প্রতিধ্বনি

পদ্ধতি args
দেয় args থেকে sh(1) ইনপুট হিসাবে, ঠিক যেন এটি a থেকে একটি কমান্ড হিসাবে টাইপ করা হয়েছিল
টার্মিনাল। আশা করা শেল শেষ না হওয়া পর্যন্ত অপেক্ষা করে। sh থেকে রিটার্ন স্ট্যাটাস হল
যে একই ভাবে পরিচালনা Exec এর রিটার্ন স্ট্যাটাস পরিচালনা করে।

বিপরীতে Exec যা stdin এবং stdout কে স্ক্রিপ্টে পুনঃনির্দেশিত করে, পদ্ধতি সঞ্চালিত
কোন পুনঃনির্দেশ (স্ট্রিং নিজেই নির্দেশিত ছাড়া অন্য)। এইভাবে, এটা হয়
প্রোগ্রামগুলি ব্যবহার করা সম্ভব যা সরাসরি /dev/tty এর সাথে কথা বলতে হবে। একই কারণে,
ফলাফল পদ্ধতি লগে রেকর্ড করা হয় না।

টাইমস্ট্যাম্প [আর্গস]
একটি টাইমস্ট্যাম্প ফেরত দেয়। কোন যুক্তি ছাড়াই, যুগের পর থেকে সেকেন্ডের সংখ্যা
ফিরে আসেন।

সার্জারির - বিন্যাস পতাকা একটি স্ট্রিং প্রবর্তন করে যা প্রত্যাবর্তন করা হয় কিন্তু প্রতিস্থাপন করা হয়
strftime জন্য POSIX নিয়ম অনুযায়ী। উদাহরণস্বরূপ %a একটি দ্বারা প্রতিস্থাপিত হয়
সংক্ষিপ্ত সাপ্তাহিক দিনের নাম (অর্থাৎ, শনি)। অন্যরা হল:
%একটি সংক্ষিপ্ত কাজের দিনের নাম
একটি পূর্ণ সপ্তাহের দিন নাম
%b সংক্ষিপ্ত মাসের নাম
%B পুরো মাসের নাম
%c তারিখ-সময় হিসাবে: বুধবার 6 অক্টোবর 11:45:56 1993
মাসের %d দিন (01-31)
% ঘন্টা (00-23)
%I ঘন্টা (01-12)
%j দিন (001-366)
%m মাস (01-12)
%M মিনিট (00-59)
%p am বা pm
%S সেকেন্ড (00-61)
%u দিন (1-7, সোমবার সপ্তাহের প্রথম দিন)
%U সপ্তাহ (00-53, প্রথম রবিবার প্রথম সপ্তাহের প্রথম দিন)
%V সপ্তাহ (01-53, ISO 8601 শৈলী)
%w দিন (0-6)
%W সপ্তাহ (00-53, প্রথম সোমবার সপ্তাহের প্রথম দিন)
%x তারিখ-সময় হিসাবে: বুধ 6 অক্টোবর 1993
%X সময় যেমন: 23:59:59
% বছর (00-99)
%Y বছর হিসাবে: 1993
%Z টাইমজোন (অথবা নির্ধারিত না হলে কিছুই নয়)
%% একটি খালি শতাংশ চিহ্ন

অন্যান্য % স্পেসিফিকেশন অনির্ধারিত। অন্যান্য চরিত্রের মাধ্যমে পাস করা হবে
অস্পর্শ শুধুমাত্র C লোকেল সমর্থিত।

সার্জারির -সেকেন্ড পতাকা একটি হিসাবে ব্যবহার করার জন্য যুগ থেকে কয়েক সেকেন্ডের পরিচয় দেয়
উৎস যা থেকে ফরম্যাট করতে হবে। অন্যথায়, বর্তমান সময় ব্যবহার করা হয়।

সার্জারির -জিএমটি পতাকা টাইমস্ট্যাম্প আউটপুটকে GMT টাইমজোন ব্যবহার করতে বাধ্য করে। কোন পতাকা ছাড়া,
স্থানীয় সময় অঞ্চল ব্যবহার করা হয়।

ফাঁদ [[আদেশ] সংকেত]
প্রদত্ত কারণ হুকুম প্রদত্ত যে কোনো একটি ভবিষ্যতে প্রাপ্তির উপর কার্যকর করা হবে
সংকেত কমান্ডটি বিশ্বব্যাপী পরিসরে কার্যকর করা হয়। যদি হুকুম অনুপস্থিত,
সংকেত কর্ম ফেরত দেওয়া হয়। যদি হুকুম স্ট্রিং হল SIG_IGN, সংকেত হল
উপেক্ষা করা যদি হুকুম স্ট্রিং হল SIG_DFL, সিগন্যালগুলি সিস্টেমের ফলাফল
ডিফল্ট. সংকেত হয় একটি একক সংকেত বা সংকেতের একটি তালিকা। সংকেত হতে পারে
সংখ্যা অনুসারে বা প্রতীকী হিসাবে নির্দিষ্ট করা হয়েছে সংকেত(3)। "SIG" উপসর্গ হতে পারে
বাদ দেওয়া

কোন আর্গুমেন্ট ছাড়া (বা আর্গুমেন্ট -সংখ্যা), ফাঁদ এর সংকেত নম্বর প্রদান করে
ফাঁদ কমান্ড বর্তমানে কার্যকর করা হচ্ছে।

সার্জারির -কোড ফ্ল্যাগ টিসিএল কোডের জায়গায় কমান্ডের রিটার্ন কোড ব্যবহার করে
যখন কমান্ডটি মূলত চলতে শুরু করে তখন ফিরে আসার কথা।

সার্জারির -ইন্টারপ ফ্ল্যাগ এ সক্রিয় ইন্টারপ্রেটার ব্যবহার করে কমান্ডটিকে মূল্যায়ন করতে দেয়
যখন ফাঁদ ঘোষণা করা হয়েছিল তার চেয়ে কমান্ড চালানো শুরু হয়েছিল।

সার্জারির -আম পতাকা কারণ ফাঁদ ফাঁদ কমান্ডের সংকেত নাম ফেরত দিতে কমান্ড
বর্তমানে মৃত্যুদন্ড কার্যকর করা হচ্ছে।

সার্জারির -সর্বোচ্চ পতাকা কারণ ফাঁদ সবচেয়ে বড় সংকেত নম্বর ফেরত দিতে কমান্ড যা পারে
সেট করা

উদাহরণস্বরূপ, কমান্ড "ফাঁদ {send_user "Ouch!"} SIGINT" প্রিন্ট করবে "Ouch!" প্রতিটি
ব্যবহারকারী ^C চাপার সময়।

ডিফল্টরূপে, SIGINT (যা সাধারণত ^C চাপলে তৈরি করা যায়) এবং SIGTERM কারণ
প্রস্থান আশা. এটি নিম্নোক্ত ফাঁদের কারণে হয়েছে, যখন প্রত্যাশা করা হয় তখন ডিফল্টরূপে তৈরি হয়
শুরু হয়।

ফাঁদ প্রস্থান {SIGINT SIGTERM}

আপনি যদি ডিবাগার শুরু করতে -D পতাকা ব্যবহার করেন, SIGINT শুরু করতে পুনরায় সংজ্ঞায়িত করা হয়
ইন্টারেক্টিভ ডিবাগার। এটি নিম্নলিখিত ফাঁদের কারণে হয়:

ফাঁদ {exp_debug 1} SIGINT

পরিবেশ পরিবর্তনশীল সেট করে ডিবাগার ফাঁদ পরিবর্তন করা যেতে পারে
একটি নতুন ফাঁদ কমান্ডে EXPECT_DEBUG_INIT।

আপনি, অবশ্যই, শুধুমাত্র আপনার ফাঁদ কমান্ড যোগ করে এই উভয় ওভাররাইড করতে পারেন
লিপি. বিশেষ করে, আপনার নিজের "ট্র্যাপ এক্সিট SIGINT" থাকলে, এটি ওভাররাইড করবে
ডিবাগার ফাঁদ আপনি যদি ব্যবহারকারীদের কাছে যাওয়া থেকে আটকাতে চান তবে এটি কার্যকর
ডিবাগার

আপনি যদি SIGINT-এ আপনার নিজের ফাঁদ সংজ্ঞায়িত করতে চান তবে এখনও ডিবাগারের ফাঁদ যখন এটি
চলছে, ব্যবহার করুন:

যদি {![exp_debug]} {trap mystuff SIGINT}

বিকল্পভাবে, আপনি অন্য কিছু সংকেত ব্যবহার করে ডিবাগারে আটকাতে পারেন।

ফাঁদ আপনাকে SIGALRM-এর জন্য ক্রিয়া ওভাররাইড করতে দেবে না কারণ এটি অভ্যন্তরীণভাবে ব্যবহৃত হয়
আশা করা. সংযোগ বিচ্ছিন্ন কমান্ড SIGALRM কে SIG_IGN (উপেক্ষা করুন) সেট করে। আপনি পুনরায় সক্ষম করতে পারেন
এটি যতক্ষণ না আপনি পরবর্তী স্পন কমান্ডের সময় এটি নিষ্ক্রিয় করেন।

দেখ সংকেত(3) আরও তথ্যের জন্য।

অপেক্ষা করুন [আর্গস]
একটি উৎপন্ন প্রক্রিয়া (অথবা বর্তমান প্রক্রিয়া যদি কারো নাম না থাকে) শেষ না হওয়া পর্যন্ত বিলম্ব হয়।

অপেক্ষা করুন সাধারণত চারটি পূর্ণসংখ্যার একটি তালিকা প্রদান করে। প্রথম পূর্ণসংখ্যা হল এর পিড
যে প্রক্রিয়ার জন্য অপেক্ষা করা হয়েছিল। দ্বিতীয় পূর্ণসংখ্যাটি সংশ্লিষ্ট স্পন আইডি।
তৃতীয় পূর্ণসংখ্যা হল -1 যদি একটি অপারেটিং সিস্টেম ত্রুটি ঘটে থাকে, অথবা 0 অন্যথায়। যদি
তৃতীয় পূর্ণসংখ্যাটি ছিল 0, চতুর্থ পূর্ণসংখ্যাটি স্পন দ্বারা প্রত্যাবর্তিত স্থিতি
প্রক্রিয়া তৃতীয় পূর্ণসংখ্যাটি -1 হলে, চতুর্থ পূর্ণসংখ্যাটি errno সেটের মান
অপারেটিং সিস্টেম দ্বারা। গ্লোবাল ভেরিয়েবল এররকোডও সেট করা আছে।

অতিরিক্ত উপাদান থেকে রিটার্ন মান শেষে প্রদর্শিত হতে পারে অপেক্ষা করুন। একটি
ঐচ্ছিক পঞ্চম উপাদান তথ্যের একটি শ্রেণী চিহ্নিত করে। বর্তমানে, একমাত্র
এই উপাদানটির সম্ভাব্য মান হল চাইল্ডকিলড যে ক্ষেত্রে পরবর্তী দুটি মান
সি-স্টাইল সংকেত নাম এবং একটি সংক্ষিপ্ত পাঠ্য বিবরণ।

সার্জারির -i পতাকা নামযুক্ত spawn_id (NOT
প্রক্রিয়া আইডি)। একটি SIGCHLD হ্যান্ডলারের ভিতরে, যেকোন জন্মের জন্য অপেক্ষা করা সম্ভব
স্পন আইডি -1 ব্যবহার করে প্রক্রিয়া করুন।

সার্জারির -এখন অপেক্ষা করুন পতাকা একটি ইঙ্গিত সঙ্গে অবিলম্বে ফিরে অপেক্ষার কারণ
সফল অপেক্ষা। প্রক্রিয়াটি প্রস্থান করলে (পরে), এটি স্বয়ংক্রিয়ভাবে অদৃশ্য হয়ে যাবে
সুস্পষ্ট অপেক্ষার প্রয়োজন ছাড়াই।

সার্জারির অপেক্ষা করুন কমান্ড ব্যবহার করা যেতে পারে আর্গুমেন্ট ব্যবহার করে একটি কাঁটাযুক্ত প্রক্রিয়ার জন্য অপেক্ষা করুন "-i
-1"। স্পন করা প্রক্রিয়াগুলির সাথে এটির ব্যবহারের বিপরীতে, এই কমান্ডটি যে কোনও সময়ে কার্যকর করা যেতে পারে
সময় কোন প্রক্রিয়াটি কাটবে তার উপর কোন নিয়ন্ত্রণ নেই। যাইহোক, রিটার্ন মান
প্রক্রিয়া আইডি জন্য চেক করা যেতে পারে.

লাইব্রেরি


Expect স্বয়ংক্রিয়ভাবে এক্সপেক্ট স্ক্রিপ্টের জন্য দুটি অন্তর্নির্মিত লাইব্রেরি সম্পর্কে জানে। এইগুলো
ভেরিয়েবল exp_library এবং exp_exec_library নামক ডিরেক্টরি দ্বারা সংজ্ঞায়িত। উভয়
অন্য স্ক্রিপ্ট দ্বারা ব্যবহার করা যেতে পারে যে ইউটিলিটি ফাইল ধারণ করা হয়.

exp_library-এ আর্কিটেকচার-স্বাধীন ফাইল রয়েছে। exp_exec_library ধারণ করে
আর্কিটেকচার-নির্ভর ফাইল। আপনার সিস্টেমের উপর নির্ভর করে, উভয় ডিরেক্টরি সম্পূর্ণ হতে পারে
খালি $exp_exec_library/cat-buffers ফাইলের অস্তিত্ব আপনার কিনা তা বর্ণনা করে
/বিন/বিড়াল ডিফল্টরূপে বাফার।

প্রিটি-প্রিন্টিং


একটি vgrind সংজ্ঞা সুন্দর-মুদ্রণের জন্য উপলব্ধ আশা করা স্ক্রিপ্ট vgrind অনুমান
সংজ্ঞা দিয়ে সরবরাহ করা হয়েছে আশা করা বিতরণ সঠিকভাবে ইনস্টল করা হয়েছে, আপনি এটি ব্যবহার করতে পারেন
যেমন:

vgrind -lexpect ফাইল

উদাহরণ


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

সার্জারির আশা করা কাগজপত্র (এছাড়াও দেখুন) দরকারী। যখন কিছু কাগজপত্র বাক্য গঠন ব্যবহার করে
প্রত্যাশার পূর্ববর্তী সংস্করণগুলির সাথে সম্পর্কিত, সহগামী যুক্তিগুলি এখনও বৈধ
এবং এই ম্যান পেজের চেয়ে অনেক বেশি বিশদে যান।

সতর্কতা


এক্সটেনশন এক্সপেক্টের কমান্ড নামের সাথে সংঘর্ষ হতে পারে। উদাহরণ স্বরূপ, পাঠান টাকা দ্বারা সংজ্ঞায়িত করা হয়
একটি সম্পূর্ণ ভিন্ন উদ্দেশ্যে। এই কারণে, অধিকাংশ আশা করা কমান্ড এছাড়াও আছে
"exp_XXXX" হিসাবে উপলব্ধ। কমান্ড এবং ভেরিয়েবল "exp", "inter", "spwn" দিয়ে শুরু
এবং "টাইমআউট" এর উপনাম নেই। আপনার প্রয়োজন হলে বর্ধিত কমান্ডের নাম ব্যবহার করুন
পরিবেশের মধ্যে সামঞ্জস্য।

আশা করা স্কোপিংয়ের একটি বরং উদার দৃষ্টিভঙ্গি নেয়। বিশেষ করে, ভেরিয়েবল কমান্ড দ্বারা পড়া
নির্দিষ্ট আশা করা প্রোগ্রামটি প্রথমে স্থানীয় সুযোগ থেকে চাওয়া হবে, এবং যদি না হয়
পাওয়া যায়, বৈশ্বিক সুযোগে। উদাহরণস্বরূপ, এটি "গ্লোবাল টাইমআউট" স্থাপনের প্রয়োজনীয়তাকে বাধা দেয়
প্রতিটি পদ্ধতিতে আপনি যেটি ব্যবহার করেন তা লিখুন আশা করা. অন্যদিকে, লেখা ভেরিয়েবল হল
সর্বদা স্থানীয় সুযোগে (যদি না একটি "গ্লোবাল" কমান্ড জারি করা হয়)। সবচেয়ে সাধারণ
এই সমস্যাটি হয় যখন একটি পদ্ধতিতে স্পোন চালানো হয়। পদ্ধতির বাইরে,
spawn_id আর বিদ্যমান নেই, তাই উদ্ভূত প্রক্রিয়া আর সহজলভ্য নয় কারণ
স্কোপিং এর এই ধরনের পদ্ধতিতে একটি "গ্লোবাল spawn_id" যোগ করুন।

আপনি যদি মাল্টিস্পাউনিং সক্ষমতা সক্ষম করতে না পারেন (অর্থাৎ, আপনার সিস্টেম কোনটিই সমর্থন করে না
নির্বাচন করুন (BSD *.*), পোল (SVR>2), বা সমতুল্য কিছু নয়), আশা করা শুধুমাত্র সক্ষম হবে
একবারে একটি একক প্রক্রিয়া নিয়ন্ত্রণ করুন। এই ক্ষেত্রে, সেট করার চেষ্টা করবেন না spawn_idনা
একটি উদ্ভাবিত প্রক্রিয়া চলাকালীন আপনি exec এর মাধ্যমে প্রসেসগুলি চালাতে হবে। উপরন্তু,
আপনি পারবেন না আশা করা একাধিক প্রক্রিয়া থেকে (এক হিসাবে ব্যবহারকারী সহ) এ
একই সময়.

টার্মিনাল প্যারামিটারগুলি স্ক্রিপ্টগুলিতে একটি বড় প্রভাব ফেলতে পারে। উদাহরণস্বরূপ, যদি একটি স্ক্রিপ্ট লেখা হয়
প্রতিধ্বনি খুঁজতে, প্রতিধ্বনি বন্ধ থাকলে এটি খারাপ আচরণ করবে। এই কারণে, প্রত্যাশা
ডিফল্টরূপে বুদ্ধিমান টার্মিনাল পরামিতি জোর করে। দুর্ভাগ্যক্রমে, এটি জিনিসগুলি তৈরি করতে পারে
অন্যান্য প্রোগ্রামের জন্য অপ্রীতিকর। উদাহরণ হিসাবে, emacs শেল "স্বাভাবিক" পরিবর্তন করতে চায়
ম্যাপিং: ক্যারেজ-রিটার্ন নিউলাইনগুলির পরিবর্তে নিউলাইনগুলি নিউলাইনে ম্যাপ করা হয় এবং প্রতিধ্বনিত হয়
নিষ্ক্রিয় করা. এটি একজনকে ইনপুট লাইন সম্পাদনা করতে emacs ব্যবহার করার অনুমতি দেয়। দুর্ভাগ্যবশত, প্রত্যাশা
এটা অনুমান করতে পারে না।

আপনি অনুরোধ করতে পারেন যে প্রত্যাশা টার্মিনাল পরামিতিগুলির ডিফল্ট সেটিং ওভাররাইড করবেন না, কিন্তু
এই ধরনের পরিবেশের জন্য স্ক্রিপ্ট লেখার সময় আপনাকে অবশ্যই খুব সতর্ক থাকতে হবে। এর ব্যাপারে
emacs, echoing এবং end-of-line ম্যাপিং এর মত বিষয়গুলির উপর নির্ভর করে এড়িয়ে চলুন।

যে কমান্ডগুলি আর্গুমেন্ট গ্রহণ করে সেগুলিকে একটি একক তালিকায় অন্তর্ভুক্ত করা হয়েছে ( আশা করা বৈকল্পিক এবং
গর্ভনাটিকা) তালিকাটি আসলে একটি যুক্তি নাকি অনেকগুলি তা নির্ধারণ করতে একটি হিউরিস্টিক ব্যবহার করুন৷ দ্য
হিউরিস্টিক শুধুমাত্র সেই ক্ষেত্রে ব্যর্থ হতে পারে যখন তালিকা আসলে একটি একক প্রতিনিধিত্ব করে
আর্গুমেন্ট যার মধ্যে একাধিক এমবেডেড \n এর মধ্যে অ-হোয়াইটস্পেস অক্ষর রয়েছে।
এটি যথেষ্ট অসম্ভব বলে মনে হচ্ছে, তবে যুক্তি "-নোব্রেস" একটি জোর করার জন্য ব্যবহার করা যেতে পারে
একক যুক্তি একটি একক যুক্তি হিসাবে পরিচালনা করা হবে। এই অনুমেয় সঙ্গে ব্যবহার করা যেতে পারে
মেশিন-জেনারেটেড এক্সপেক্ট কোড। একইভাবে, -ব্রেস একটি একক যুক্তি হিসাবে হ্যান্ডেল করতে বাধ্য করে
একাধিক নিদর্শন/ক্রিয়া।

onworks.net পরিষেবা ব্যবহার করে অনলাইনে প্রত্যাশা করুন



সর্বশেষ লিনাক্স এবং উইন্ডোজ অনলাইন প্রোগ্রাম