এটি কোনও বহু-লাইনের মন্তব্য নয়। #
একটি একক লাইন মন্তব্য।
:
(কোলন) মোটেই কোনও মন্তব্য নয়, বরং শেল বিল্ট-ইন কমান্ড যা মূলত একটি এনওপি , একটি নাল অপারেশন যা সত্য প্রত্যাবর্তন ছাড়া কিছুই করে না true
( $?
যেমন পার্শ্ব প্রতিক্রিয়া হিসাবে 0 তে সেট করে)। তবে এটি যেহেতু একটি আদেশ, তাই এটি আর্গুমেন্টগুলি গ্রহণ করতে পারে এবং যেহেতু এটি তার যুক্তিগুলিকে উপেক্ষা করে, বেশিরভাগ ক্ষেত্রে এটি অতিমাত্রায় মন্তব্যের মতো কাজ করে। এই ক্লেজটি নিয়ে মূল সমস্যাটি হ'ল যুক্তিগুলি এখনও প্রসারিত হয়, যার ফলে অনেকগুলি অনিচ্ছাকৃত পরিণতি হয়। যুক্তিগুলি সিনট্যাক্স ত্রুটিগুলি দ্বারা এখনও প্রভাবিত হয়, পুনর্নির্দেশগুলি এখনও সম্পাদন করা হয় তাই : > file
কেটে যাবে file
এবং : $(dangerous command)
বিকল্পগুলি এখনও চলবে।
শেল স্ক্রিপ্টগুলিতে মন্তব্যগুলি সন্নিবেশ করানোর সর্বনিম্ন আশ্চর্যজনক সম্পূর্ণ নিরাপদ উপায়টি রয়েছে #
। এমনকি বহু-লাইনের মন্তব্যের জন্য এটি আটকে দিন। মন্তব্যের জন্য কখনও (আব) ব্যবহার করার চেষ্টা করবেন না :
। শেলটিতে কোনও উত্সর্গীকৃত মাল্টি-লাইন মন্তব্য প্রক্রিয়া নেই যা স্ল্যাশ-তারা /* */
ফর্মের সাথে C
অনুরূপ ভাষাগুলির সাথে সাদৃশ্যপূর্ণ ।
সম্পূর্ণতার স্বার্থে, তবে এটি অনুশীলনের সুপারিশ করার কারণে নয়, আমি উল্লেখ করব যে মাল্টি-লাইন "মন্তব্যগুলি" করতে এখানে-নথিগুলি ব্যবহার করা সম্ভব :
: <<'end_long_comment'
This is an abuse of the null command ':' and the here-document syntax
to achieve a "multi-line comment". According to the POSIX spec linked
above, if any character in the delimiter word ("end_long_comment" in
this case) above is quoted, the here-document will not be expanded in
any way. This is **critical**, as failing to quote the "end_long_comment"
will result in the problems with unintended expansions described above.
All of this text in this here-doc goes to the standard input of :, which
does nothing with it, hence the effect is like a comment. There is very
little point to doing this besides throwing people off. Just use '#'.
end_long_comment
CommentedOutBlock() { echo "test"; }