প্রোগ্রামগুলি ইনস্টল করার জন্য আমি কীভাবে "হ্যাঁ" প্রতিক্রিয়া স্ক্রিপ্ট করব?


113

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

Do you want to continue [Y/n]?

এবং ইনস্টলকে বিরতি দিন। আমি সব ক্ষেত্রে "ওয়াই" এর স্বয়ংক্রিয় উত্তর দিতে চাই, আমি কীভাবে এটি করব তা নিশ্চিত।


3
আপনি ব্যবহার করতে পারেন প্যাকেজ পরিচালকের একটি --nopromptবা --noconfirmপতাকা থাকতে পারে।
ব্লেন্ডার

উত্তর:


209

'হ্যাঁ' কমান্ড হবে প্রতিধ্বনি 'Y' (অথবা যাই হোক না কেন আপনি এটি জিজ্ঞাসা করুন) অনির্দিষ্টকালের জন্য। এটি হিসাবে ব্যবহার করুন:

yes | command-that-asks-for-input

বা, যদি একটি মূলধন 'Y' প্রয়োজন হয়:

yes Y | command-that-asks-for-input

এটি কেবল হ্যাঁ থেকে ইনপুট ব্যবহার করতে সমর্থিত কিছু কমান্ড দিয়ে কাজ করে, তাই না? আমি
ওপেনস্ট্যাক

1
//, "হ্যাঁ" পুরো শব্দটি লিখতে হলে কী হবে?
নাথান বাসানিজ

1
yesএটি সিপিইউ সর্বাধিক করার জন্য পরিচিত হিসাবে সতর্ক থাকুন । stackoverflow.com/a/18164007/720665
ডেভিড সালামন

খুশী হলাম। এটি আমার জীবনকে যথেষ্ট সহজ করে তুলেছে। : ডি। এছাড়াও -yবাশ স্ক্রিপ্টগুলির জন্য গুগলিং ছিল হার্ড।
নাথান স্মিথ

1
@ ডেভিডসালামন কেবল তখনই যখন সীমা ছাড়াই কোনও কিছু লিখতে /dev/nullবা পছন্দ করা বন্ধ করে দেয় । কোনও কমান্ডে পাইপ করা হয়েছে, প্রতি বার প্রাপ্তি কমান্ডটি পড়লে এটি কেবল পাইপে একটি লাইন লিখবে এবং অন্যথায় অপেক্ষা করবে।
ওয়ালফ

68

echo y | command কাজ করা উচিত.

এছাড়াও, কিছু ইনস্টলারের একটি "অটো-হ্যাঁ" পতাকা রয়েছে। এটা -yজন্য apt-getউবুন্টু উপর।


আমি "গিটরল নো" | প্রতিধ্বনি করার চেষ্টা করছি jspm রেজিস্ট্রি আমার শেল স্ক্রিপ্টে রেজিস্ট্রি_নাম jspm-git তৈরি করুন। কিন্তু এটি ব্যর্থ হয়। জিহর প্রবেশের সময়। কোন ধারণা?
manismku

আর একটি উদাহরণ: ডকার-রচনায় এখানে -f( --force) পতাকা রয়েছে যা কিছু অপসারণ করার আদেশগুলির জন্য "অটো-হ্যাঁ" হিসাবে কাজ করে
লুকে

প্রম্পটে একাধিকবার নিশ্চিতকরণ জিজ্ঞাসা করার ক্ষেত্রে আপনি কীভাবে পুনরায় "ইকো ওয়াই" করবেন?
সাফাক ওজকান

18

লক্ষ্য সার্ভারে আপনার প্রত্যাশা ইনস্টল করার ক্ষমতা নাও থাকতে পারে। এটি প্রায়শই ঘটে যখন কোনও জেনকিন্স কাজ লেখেন, বলুন।

যদি তা হয় তবে আমি Askubuntu.com এ নিম্নলিখিতগুলির উত্তরের মতো কিছু বিবেচনা করব:

/ubuntu/338857/automatically-enter-input-in-command-line

printf 'y\nyes\nno\nmaybe\n' | ./script_that_needs_user_input

নোট করুন যে কিছু বিরল ক্ষেত্রে কমান্ডের ব্যবহারকারীর অক্ষরের পরে এন্টার টিপতে হবে না। সেক্ষেত্রে নিউলাইনগুলি ছেড়ে দিন:

printf 'yyy' | ./script_that_needs_user_input

সম্পূর্ণতার জন্য আপনি এখানে একটি নথিও ব্যবহার করতে পারেন:

./script_that_needs_user_input << EOF
y
y
y
EOF

বা যদি আপনার শেল এটি একটি স্ট্রিং সমর্থন করে:

./script <<< "y
y
y
"

অথবা আপনি প্রতি লাইনে একটি ইনপুট দিয়ে একটি ফাইল তৈরি করতে পারেন:

./script < inputfile

আবার, এই উত্তরের সমস্ত কৃতিত্ব জিজ্ঞাসাবাদু ডট কম এ উত্তরটির লেখকের কাছে যায় , লেসমান a


//, দয়া করে আপনার এই উত্তরটি পছন্দ হলে Askubuntu.com ব্যবহারকারীর @lesmana upvote করতে ভুলবেন না
নাথান বাসানিজ

6

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

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


6

আপনার শুধু লাগানো দরকার -y ইনস্টল কমান্ডটি দিয়ে ।

উদাহরণ স্বরূপ: yum install <package_to_install> -y


3

আপনি যদি কেবল ডিফল্ট গ্রহণ করতে চান তবে আপনি এটি ব্যবহার করতে পারেন:

\n | ./shell_being_run

//, এর অর্থ কীভাবে আপনি ডিফল্ট গ্রহণ করবেন?
নাথান বাসানিজ

2
ইন bash, shএবং সবচেয়ে সিস্টেম, যা আমি জানি, আপনি প্রয়োজন পরবর্তী কমান্ড জন্য বাঁশি বাজালাম অন্যথায় এটি হবে না। echo\n
2i3r
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.