[
কমান্ড শর্তাধীন অভিব্যক্তি নির্ণয় করা হয়। এটি এখানে কোন কাজে আসে না।
কারণ umount
এর স্ট্যান্ডার্ড আউটপুটে কোনও কিছুই আউটপুট দেয় না (ত্রুটিগুলি স্ট্যাডারে চলে যায়), `sudo umount mount`
কিছুতেই প্রসারিত হয় না।
সুতরাং এটি এর মতো:
while [ ]
do
sleep 0.1
done
[
কমান্ড, যখন পাশে কোনো আর্গুমেন্ট পাস না [
এবং ]
রিটার্ন মিথ্যা (ক নন-জিরো প্রস্থান স্থিতি), তাই আপনি লুপ প্রবেশ করা হবে না।
এমনকি umount
stdout এ তার ত্রুটিগুলি থাকলেও, [
কমান্ডটি ব্যবহার করে বোঝা যাচ্ছিল না, কারণ আউটপুটটির ফলে প্রাপ্ত শব্দগুলি কখনই একটি বৈধ শর্তযুক্ত অভিব্যক্তি তৈরি করতে পারে না।
আপনি এখানে চান:
until sudo umount mount
do
sleep 0.1
done
এটি হ'ল আপনি [
কমান্ডের নয়, sudo / umount এর প্রস্থান স্থিতি পরীক্ষা করতে চান ।
আপনি যদি umount
তার স্টাডারটিতে আউটপুট কোনও ত্রুটি বা সতর্কতা পরীক্ষা করে দেখতে চেয়েছিলেন তবে এটিই কার্যকর [
হতে পারে। -n "some-string"
একটি শর্তাধীন দ্বারা স্বীকৃত অভিব্যক্তি [
পরীক্ষা কমান্ড কিনা "some-string"
খালি বা না কিছু তাই হয়:
while [ -n "$(sudo umount mount 2>&1 > /dev/null)" ]; do
sleep 0.1
done
তবে ত্রুটি বা সতর্কতা বার্তার উপস্থিতির সন্ধান করা সাধারণত একটি খারাপ ধারণা। umount
কমান্ড আমাদের বলে থাকুক বা না থাকুক এটির প্রস্থান কোড, আরো অনেক কিছু নির্ভরযোগ্য এরকম একটির সঙ্গে সফল। এটি সফল হতে পারে এবং এখনও কিছু সতর্কতা বার্তা আউটপুট করতে পারে। এটি ব্যর্থ হতে পারে এবং কোনও ত্রুটি আউটপুট নাও করতে পারে (যেমন এটি মারা যাওয়ার পরে)।
এই বিশেষ ক্ষেত্রে, নোটটি umount
ব্যর্থ হতে পারে কারণ ডিরেক্টরিটি মাউন্ট করা হয়নি, এবং আপনি সেই ক্ষেত্রে চিরতরে লুপ করবেন, যাতে আপনি অন্য পদ্ধতির চেষ্টা করতে পারেন:
while mountpoint -q mount && ! sudo umount mount; do
sleep 0.1
done
অথবা যদি "মাউন্ট" কয়েকবার মাউন্ট করা হতে পারে এবং আপনি সেগুলি সমস্ত আনমাউন্ট করতে চান:
while mountpoint -q mount; do
sudo umount mount || sleep 0.1
done