দয়া করে মনে রাখবেন, এটি নির্মাণের [] && cmd
মতো নয় if .. fi
।
কখনও কখনও এটির আচরণটি এর মতো একইরকম হয় এবং আপনি এর [] && cmd
পরিবর্তে ব্যবহার করতে পারেন if .. fi
। তবে শুধুমাত্র কখনও কখনও। যদি আপনার আরও থাকে তবে শর্তটি কার্যকর করতে একটি কমান্ড বা আপনার if .. else .. fi
সতর্কতা অবলম্বন করা উচিত এবং যুক্তিটি কী করা উচিত।
উদাহরণ দুটি:
[ -z "$VAR" ] && ls file || echo wiiii
যেমন হয় না
if [ -z $VAR ] ; then
ls file
else
echo wiii
fi
কারন যদি ls
ব্যর্থ হবে, echo
মৃত্যুদন্ড কার্যকর করা হবে, যা দিয়ে ঘটবে না if
।
আরেকটি উদাহরণ:
[ -z "$VAR" ] && ls file && echo wiii
যেমন হয় না
if [ -z "$VAR" ] ; then
ls file
echo $wiii
fi
যদিও এই নির্মাণ একই কাজ করবে
[ -z "$VAR" ] && { ls file ; echo wiii ; }
দয়া করে নোট করুন ;
প্রতিধ্বনির পরে গুরুত্বপূর্ণ এবং অবশ্যই তা অবশ্যই রয়েছে।
সুতরাং উপরের বিবৃতি পুনরায় শুরু করা আমরা বলতে পারি
[] && cmd
== যদি প্রথম কমান্ড সফল হয় তবে পরবর্তীটি কার্যকর করুন
if .. fi
== যদি শর্ত থাকে (যা টেস্ট কমান্ডও হতে পারে) তবে কমান্ড কার্যকর করুন
সুতরাং কেবল [
এবং [[
ব্যবহারের মধ্যে বহনযোগ্যতার জন্য [
।
if
POSIX সামঞ্জস্যপূর্ণ। সুতরাং আপনি যদি নিজের কাজটি এবং প্রত্যাশিত আচরণের মধ্যে থেকে বেছে নিতে চান [
এবং if
বেছে নিতে পারেন।
[ … ]
বনাম[[ … ]]
বনামtest …
সেখানে আরও সম্পূর্ণ উত্তর এই বেশিরভাগই ডুপ্লিকেট প্রশ্ন ।