বাক্য গঠনটি হ'ল:
while
first list of commands
do
second list of commands
done
কমান্ডগুলির প্রথম তালিকা যতক্ষণ না লুপে কমান্ডগুলির দ্বিতীয় তালিকাটি চালানো হয় (সুতরাং সেই তালিকার শেষ রান) সফল হয়।
যে কমান্ড প্রথম তালিকা ব্যবহার করতে পারেন [পরীক্ষা বিভিন্ন ধরণের কাজ করতে আদেশ করে, না আপনি ব্যবহার করতে পারেন :নাল কমান্ড কিছুই এবং আয় সাফল্য, বা অন্য কোন কমান্ড আছে।
while :; do cmd; done
রান cmdবহুবার চিরকাল যেমন :সবসময় সাফল্য ফেরৎ। এটাই চিরকালীন লুপ। আপনি ব্যবহার করতে পারে trueএটি আরো সহজপাঠ্য করতে পরিবর্তে কমান্ড প্রয়োগ করুন:
while true; do cmd; done
লোকেরা সর্বদা অন্তর্নির্মিত :যেমন :ছিল তেমন পছন্দ করত true(অনেক দিন আগে; বেশিরভাগ শেলগুলি trueআজকাল নির্মিত) ¹ ¹
আপনি দেখতে পাবেন এমন অন্যান্য রূপগুলি:
while [ 1 ]; do cmd; done
উপরে, আমরা ["1" স্ট্রিংটি খালি নয় কিনা তা পরীক্ষা করার জন্য কমান্ডটি কল করছি (তাই সর্বদা সত্যও সত্য)
while ((1)); do cmd; done
সি এর ((...))নকল করার while(1) { ...; }জন্য কর্ন / ব্যাশ / জেডএস সিনট্যাক্স ব্যবহার করা
বা আরও সংঘাতযুক্ত যেমন until false; do cmd; done, until ! true...
এগুলি কখনও কখনও যেমন এলিয়াসযুক্ত হয়:
alias forever='while :; do'
সুতরাং আপনি যেমন কিছু করতে পারেন:
forever cmd; done
খুব কম লোকই বুঝতে পারে যে শর্তটি আদেশের তালিকা । উদাহরণস্বরূপ, আপনি লোকেরা লিখতে দেখছেন:
while :; do
cmd1
cmd2 || break
cmd3
done
যখন তারা লিখতে পারত:
while
cmd1
cmd2
do
cmd3
done
এটি তালিকার জন্য এটি অর্থবোধ করে না কারণ আপনি প্রায়শই এমন কিছু করতে চান while cmd1 && cmd2; do...; doneযা কমান্ডের তালিকাও রয়েছে lists
যাইহোক, নোটটি [অন্য যেগুলির মতো একটি কমান্ড (যদিও এটি আধুনিক বোর্নের মতো শেলগুলি অন্তর্নির্মিত রয়েছে), এটি কেবলমাত্র if/ while/ untilশর্ত তালিকায় ব্যবহার করতে হবে না এবং শর্ত তালিকাগুলির মধ্যে নেই don't অন্য কমান্ডের চেয়ে এই কমান্ডটি বেশি ব্যবহার করা।
Also :এছাড়াও সংক্ষিপ্ত এবং আর্গুমেন্ট গ্রহণ করে (যা এটি উপেক্ষা করে)। আপনি যদি কোনও যুক্তি দিয়ে থাকেন তবে তার আচরণ trueবা falseঅনির্দিষ্ট। সুতরাং কেউ উদাহরণস্বরূপ করতে পারে:
while : you wait; do
something
done
তবে, এর আচরণ:
until false is true; do
something
done
নির্ধারিত (যদিও এটি বেশিরভাগ শেল / falseবাস্তবায়নে কাজ করবে )।
:সর্বদা রিটার্ন কোড 0 সহ প্রস্থান করে ছাড়া কিছুই করে না So সুতরাং, এটি একই রকম ছিলwhile true(ধরে নিলে আপনার সিস্টেমেtrueএক্সিকিউটেবল রয়েছে)।