বাশ স্ক্রিপ্টে ENTER কী টিপসকে অনুকরণ করে


100

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

রানটাইমের সময় আমাকে ইনপুট বা কোনও কিছুর জন্য অপেক্ষা করতে হবে না, এটি কেবল কীপ্রেস পাঠানোর জন্য যথেষ্ট এবং ইনপুট বাফারটি বাকীটি পরিচালনা করবে।


4
আপনি যে সরঞ্জামটি স্বয়ংক্রিয়ভাবে চেষ্টা করার চেষ্টা করছেন তা যদি হয় apt-getতবে সঠিক সমাধানটি হ'ল আপনার পছন্দের মানগুলির সাথে ডাবকনফ ডাটাবেসটিকে পূর্ববর্তী করা; তাহলে এটি আপনাকে জিজ্ঞাসা করবে না
ট্রিপলি

আপনি প্রতিধ্বনির পরিবর্তে
প্রিন্টফ

উত্তর:


135
echo -ne '\n' | <yourfinecommandhere>

বা প্রতিধ্বনিত হওয়া অন্তর্নিহিত নিউলাইনটির সুবিধা গ্রহণ করে (ধন্যবাদ মার্সিন)

echo | <yourfinecommandhere>

এখন আমরা কেবল --skবিকল্পটি ব্যবহার করতে পারি :

--sk, --skip-keypressপ্রতিটি পরীক্ষার পরে কিপ্রেসের জন্য অপেক্ষা করবেন না

অর্থাত্ sudo rkhunter --sk --checkall


4
আপনি যদি এই আউটপুটটি আপনার কাছে ফিড করেন তবে হেক্স xxdপাবেন 5c6eযা আক্ষরিক \n। যদি আপনি ঠিক করেন তবে echo | xxd আপনি আসলে একটি হেক্সাস দিয়ে শেষ করেন 0a। সুতরাং আমি অনুমান করি যে আপনার প্রোগ্রামের যা প্রয়োজন তা ব্যবহার করুন।
মার্সিন

4
@ মার্সিন, আমি অবাক হয়েছি, আমি 0a0aএখনও পেয়েছি যা এখনও ইচ্ছাকৃত নয়, -nঅন্তর্নিহিত নিউলাইন যোগ করে। তবে আপনার অবশ্যই ঠিক আছে, একটি সমতল echo | ...এখানে কাজ করে। আমার উত্তর আপডেট করবে।
টিলম্যান ভোগেল

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

@ মার্সিন, এখনও, আপনি কেন পাবেন 5c6e? আপনি কী বাদ পড়েছেন -eবা আপনার শেলটি ফেলেছেন বা echoসেই বিকল্পটি ব্যবহার করেন না?
তিলমান ভোগেল

আমি পাবেন: echo -ne "\n" | xxd 0000000: 0a এবং echo -n "\n" | xxd 0000000: 5c6e এবং echo "\n" | xxd 0000000: 5c6e 0a আমি একক এবং ডবল কোট মধ্যে কোনো পার্থক্য দেখা যায় না। আমার শেলটি কেবল একটি নিয়মিত বাশ, এমন কোনও সেটিংস রয়েছে যা এই জাতীয় মৌলিক কার্যকারিতা আচরণ নিয়ন্ত্রণ করে?
মার্সিন

43

আপনি yesকমান্ডটি দরকারী মনে করতে পারেন।

দেখা man yes


57
yesআমি এটি দরকারী মনে করি।
পিওরফেরেট

4
এটি "কী" বার বার চাপার পরিবর্তে "কী" টিপুন sim যদিও এটি সম্ভবত আপনি হ্যাঁ / কোনও প্রশ্ন করতে চান, এটি এমন কোনও কাজের জন্য কাজ করবে না যা "y" আশা করে না।
বুরহান আলী

5
@ বুরহানআলি: যা আপনি যা yesপাঠায় তা এর আউটপুট হিসাবে পরিবর্তন করতে পারবেন । ম্যান পৃষ্ঠাটি পড়ুন।
স্যারাইড

4
আমি কি এমন স্ক্রিপ্টের জন্য হ্যাঁ একাধিকবার পাঠাতে পারি যা প্রত্যাশা করে ডিফল্ট মানগুলি [মান] {প্রবেশ করুন}
কে_

এটি কেবল ইয়মের মতো কাজ করে। যেখানে স্ট্রিংটি প্রত্যাশিত।
আইনার্ক


22

নমুনা ব্যবহার এখানে ব্যবহার করে expect:

#!/usr/bin/expect
set timeout 360
spawn my_command # Replace with your command.
expect "Do you want to continue?" { send "\r" }

man expectআরও তথ্যের জন্য পরীক্ষা করুন:


বিশেষত সহায়ক যদি একাধিক প্রবেশ কিপ্রেসগুলি প্রেরণ করা দরকার
অ্যানডি

এটি সর্বোত্তম উপায়, বিশেষত ফার্সের মতো জিনিসের জন্য যেখানে বিভিন্ন স্টডআউট এবং স্টিডিন স্ট্রিং প্রেরণ করা হয়।
আইনার্ক

এছাড়াও মনে রাখবেন যদি আপনার যুক্তি থাকে তবে কেবল আমার_কম্যান্ড আরগটি প্রবেশ করুন।
আইনার্ক

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