ইতিমধ্যে অনুরূপ প্রশ্ন আছে তবে আমি এটি পোস্ট করছি কারণ উত্তরগুলির কোনওটিই কাজ করে না। আমি আমার আর্চ সিস্টেমে প্যাকম্যান এবং এআর প্যাকেজগুলির ইনস্টলেশন স্বয়ংক্রিয় করতে বাশ স্ক্রিপ্ট লিখছি। প্যাকেজটির নাম দিয়ে একটি ফাইল (মাইফাইল) প্রথম লাইনে লাইন এবং তারপরে শব্দ দ্বারা শব্দ এবং প্রতিটি শব্দের জন্য ইনস্টলেশন সম্পাদন করা ধারণা। এটি প্যাকম্যানের পক্ষে সূক্ষ্ম কাজ করে তবে এআউআর হেল্পারের (অরম্যান) পক্ষে নয়। আরমানের অংশটি দেখতে এরকম দেখাচ্ছে:
while read line; do
if [[ "$line" =~ \$[[:space:]]aurman[[:space:]]-S[[:space:]][[:alnum:]]* ]]
then
aurline=$(echo "$line" | awk '{ $1=""; $2=""; $3=""; print}' | sed 's/^ *//')
for aurpkg in $aurline
do
sudo -u "${my_user}" bash << EOF
aurman -S --noconfirm --needed --noedit "$aurpkg"
wait
EOF
done
fi
done < "$myfile"
বিকল্পগুলির সাথে --noconfirm --needed --noedit aurman আমাকে হ্যাঁ / নায়ের জন্য অনুরোধ করে না তবে কিছু প্যাকেজগুলির জন্য এটি আমাকে একটি সংখ্যার জন্য অনুরোধ জানায়। সুতরাং সমস্যাটি এই ক্ষেত্রে স্ক্রিপ্টটি অপেক্ষা করে না, প্যাকেজটি ইনস্টল হয় না এবং অরমন একটি ত্রুটি তৈরি করে "EOFError: EOF একটি লাইন পড়ার সময়"। আমি স্ক্রিপ্টটি এভাবে বিরতি দেওয়ার চেষ্টা করেছি:
aurman ...
wait
বা এই মত:
aurman ... &
wait
তবে এগুলির কোনওটিই কাজ করে না।
আরমান যখন আমাকে একটি সংখ্যার জন্য অনুরোধ করে আমি কীভাবে আমার স্ক্রিপ্টটি থামিয়ে দিতে পারি? এই জাতীয় ক্ষেত্রে সাধারণ পদ্ধতি কী? আমি স্ক্রিপ্টটি চালানোর সময় থেকেই কীভাবে নির্দিষ্ট প্যাকেজের জন্য উত্তর দিতে পারি (উদাহরণস্বরূপ প্যাকেজ এক্সের জন্য 1)?
aurman
তবে সম্ভবতexpect
আপনার প্রয়োজনীয় সরঞ্জাম। দেখুনman 1 expect
এবং এই উত্তর ।