একটি পতাকা, একটি বিকল্প এবং একটি তর্ক মধ্যে পার্থক্য কি? [বন্ধ]


14
  • ls -a(আমি -aএকটি বিকল্প বিবেচনা )

  • sudo -u username( -u= বিকল্প, username= আরগ)

  • chmod 664 my-dir( 664= বিকল্প, my-dir= আরগ)

আমি এমন উদাহরণের কথা ভাবতে পারি না যা সম্ভবত বলার অপেক্ষা রাখে না যে, "এটি একটি পতাকা" "

-r--------. 1 david david   3344 May 19 17:48 611056.pdf

এটিতে মালিকের জন্য "পড়ার পতাকা" সেট রয়েছে তবে এটিই যথেষ্ট। আমাকে "পড়ার বিকল্প" বলার থেকে বাধা দেওয়ার কী আছে?

আমি প্রযুক্তিগত ডকুমেন্টেশন লিখি এবং সম্পাদনা করি, মূলত ডকবুক এক্সএমএলে এবং আমি পার্থক্যের ব্যাখ্যা খুঁজছি যা যথাসম্ভব ধারাবাহিক এবং নির্ভুল। যাইহোক, আমি ইতিমধ্যে একটি প্যাটার্ন গঠন দেখছি:

  1. পতাকা বুলিয়ান হতে থাকে। যেমন,setenforce 0
  2. কমান্ডের আচরণ কীভাবে করা উচিত তা অপশনগুলি সাহায্য করে। কিছু alচ্ছিক হতে পারে।
  3. আর্গুমেন্টগুলি কমান্ডগুলি জানায় যে কোন বস্তুটি কাজ করবে।

আমি পতাকা এবং বিকল্পগুলির সংমিশ্রণটি দেখতে পেলাম (কিছু বিকল্পের এক ডজন সম্ভাব্য মান থাকতে পারে তবে বুলিয়ানদের কেবল দুটি আছে)। যুক্তিগুলি সেগুলি বজায় রাখার জন্য যথেষ্ট আলাদা দেখা যায়।


2
"আমাকে ডাকতে বাধা দেওয়ার কি আছে ..."? ওও কিছুই না। ঠিক যেমন কিছুই আমাকে কোদাল গাছ বলতে বাধা দেয় না।
মুরু

@ মুরু - যদিও একটি ইংরেজি অভিধান আপনার দাবির সাথে একমত হবে না।
ডার্কহার্ট

3
জিনিসগুলিকে আরও বিভ্রান্ত করার জন্য, আমি এমন একটি বিকল্পও কল করব যা আপনার ls -aউদাহরণ হিসাবে যেমন কোনও পরামিতি / তর্ককে পতাকা গ্রহণ করে না । (আমার কাছে, একটি পতাকা একটি বুলিয়ান পরিবর্তনশীল))
উলিরিচ শোয়ার্জ

3
তারা কুকুরের ক্যানেল ; তাদের সব ত্রিশ। :-) ⁠
স্কট

আপনি যে প্যাটার্নটি দেখছেন সেটি কেবলমাত্র সেখানে কারণ আপনি দেখতে চান এমন জিনিসগুলি সঙ্কুচিত করে। একটি টিআর ফাইল তৈরির একটি উপায় (যেটি আমি ৩০ বছরেরও বেশি সময় ধরে ব্যবহার করছি) এবং যেমন এটি নিষ্কাশন নয়: এটির tar c abc.txt > x.tarমধ্যে cএকটি ফাংশন রয়েছে । আপনি এটিকে বিকল্প হিসাবে কল করার চেষ্টা করছেন এবং এটি সম্পূর্ণ অনুপযুক্ত।
অ্যান্থন

উত্তর:


17

"বিকল্প", "আর্গুমেন্ট" এবং "পতাকা" পদগুলির কোনও সুসংগত সংজ্ঞা নেই এবং সফ্টওয়্যার বিকাশের জগতে এমন কোনও কেন্দ্রীয় কর্তৃপক্ষ নেই যা তাদের ব্যবহার কার্যকর করতে পারে। এটি অনেক পরিভাষার সাথে ঘটে: "ডিরেক্টরি" শব্দটি ব্যবহারের 30+ বছর পরে, এখন "ফোল্ডার" শব্দটি ব্যবহার করে এমন লোকদের সাথে আমার মোকাবিলা করতে হবে যারা মাইক্রোসফ্টের নতুন ভাষায় বিভ্রান্ত হয়েছেন।

প্রোগ্রামিংয়ে শর্তগুলির জন্য সম্মত সংজ্ঞাগুলি আসতে পারে এমন বিভিন্ন উপায় রয়েছে। "যুক্তি" / "বিকল্প" / "পতাকা" এর ক্ষেত্রে, প্রোগ্রামিং ভাষার জন্য নীতিগত ম্যানুয়াল এবং টিউটোরিয়ালগুলি সাধারণ লাইব্রেরিতে ব্যবহৃত শর্তাদি যেমন ব্যবহার প্রয়োগ করতে সহায়তা করেছে have

উদাহরণস্বরূপ, কমান্ডের পরে আপনি যে জিনিসগুলি কমান্ড লাইনে রেখেছেন সেগুলিকে প্রায়শই কমান্ডের "আর্গুমেন্ট" বলা হয়, একটি ফাংশন কলের সাথে আর্গুমেন্টের সাথে এবং এটি সম্ভবত আংশিক কারণ সেগুলিকে সি ম্যানুয়ালটিতে "আর্গুমেন্ট" বলা হয় ( অতএব argcএবং argv)। argparseপাইথন লাইব্রেরি শব্দ "যুক্তি" জোরদার করতে সাহায্য করে। তবে, আমি তাদের "পরামিতি" বলা হচ্ছে দেখেছি।

"বিকল্প" শব্দটি "alচ্ছিক" থেকে উদ্ভূত, যা বোঝায় যে এগুলি বাদ দেওয়া যেতে পারে। getoptC লাইব্রেরি এই শব্দটি এক ব্যবহার। তবে "বিকল্প" এর নজির রয়েছে যা আসলে alচ্ছিক নয়: উদাহরণস্বরূপ, argparse ম্যানুয়ালটিতে বলা হয়েছে যে একটি "প্রয়োজনীয় বিকল্প" তৈরি করতে পারে (যদিও এটি আরও বলে যে এটি "সাধারণত খারাপ রূপ হিসাবে বিবেচিত হয়")। বিকল্প প্রায়ই একটি একক (পূর্বে করছে -) অথবা ডবল ( --, দীর্ঘ-বিকল্প) ড্যাশ, কিন্তু সুপরিচিত কমান্ড যে প্রয়োজন হয় বা বিকল্পের জন্য ড্যাশ ব্যবহার জোরদার না (যেমন, tar, ps, এবং dd)। একটি বিকল্প নিজেই একটি যুক্তি (যেমন, -w80এবং --color=always), বা মাঝে মাঝে একাধিক যুক্তি নিতে পারে।

"পতাকা" আমার অভিজ্ঞতান্বে, বিকল্পগুলির মত একই, তবে সাধারণত আর্গুমেন্টগুলি নিজেরাই গ্রহণ করে না এবং মূলত বুলিয়ান অন-অফ সুইচগুলি উপস্থাপন করে।

একটি বিস্তৃত নোটে, যেহেতু প্রতিটি প্রোগ্রামারকে কিছু করার এবং কিছু নামকরণের কিছু স্ট্যান্ডার্ড পদ্ধতি চেষ্টা করার চেষ্টা করা হয় তবে এটি অনেক অতিরিক্ত ব্যয় ছাড়াই চাকাটিকে পুনর্বিবেচনা করতে পারে, নামকরণ কখনই সামঞ্জস্য হতে পারে না। এবং একবার আপনি নিজের কোডটি নথিভুক্ত করার পরে, এবং উদাহরণ দিয়ে এই শব্দগুলিতে আপনি কী নতুন অর্থ দিয়েছেন তা স্পষ্ট হয়ে যায়, names নামগুলি এবং অর্থগুলি কেবল আপনার কোড থেকে তুলে নেওয়ার মতো লোক থাকলে তা কেবল আটকে থাকতে পারে।


7

পতাকাটি হ'ল এক ধরণের বিকল্প, বুলিয়ান ধরণের একটি বিকল্প এবং এটি সর্বদা ডিফল্টরূপে মিথ্যা থাকে (যেমন --verbose, --quiet, - all, --long, ইত্যাদি)।

একটি বিকল্প ফাংশনটি কীভাবে আচরণ করবে তা বোঝায় (যেমন -a, -l, --verbose, - আউটপুট, -নাম, -সি, ইত্যাদি), একটি আর্গুমেন্ট হিস্ট করে ফাংশনটি কীভাবে / থেকে কাজ করবে তা (যেমন *, ফাইল 1, হোস্ট-নেম, ডাটাবেস)।


সুতরাং আপনার সংজ্ঞায়, ইন git pull git://bla/bla, এটি pullএকটি যুক্তি যা gitআপনাকে কী কাজ করতে হবে তা বলে ।
অ্যান্থন

1
@ তবে না, অপারেটর রয়েছে (স্যুইচ / পতাকা / পরামিতি), যুক্তি এবং কমান্ডpullএকটি আদেশ। আবেদনের নামের এক্সটেনশন হিসাবে কমান্ডগুলি কেউ ভাবতে পারে: গিট টান <...> একটি অ্যাপ্লিকেশনটির সমান git-pull। যখন অ্যাপ্লিকেশনটির কমান্ড থাকে, প্রতিটি কমান্ড অ্যাপ্লিকেশনটিকে সম্পূর্ণ আলাদা করে তোলে।
জিগি ক্রুয়েলটিফ্রি জাইটিজিস্টার

গিট লোকেরা এটিকে একটি কমান্ড বলতে পারে, তবে এটি সর্বদা যেমন একে বলা হয় না tar, cতৈরির জন্য ব্যবহারকে একটি ফাংশন বলে । এবং এটি হ'ল সমস্যা: শর্তাদির কোনও মানদণ্ড নেই, এমনকি যদি মনে হয় আপনার উত্তরটি আছে বলে মনে হচ্ছে
অ্যান্থন

একটি পতাকা ডিফল্টরূপে মিথ্যা হতে হবে না। কমান্ড লাইনে পতাকা সরবরাহ করা কেবল তার ডিফল্ট অবস্থার বিপরীত হয় (চালু -> বন্ধ, বা বন্ধ -> অন)। কিছু লোক এটিকে পতাকা থেকে আলাদা করার জন্য একটি টগল বলে। অন্যরা মনে করেন যে পার্থক্যটি গুরুত্বহীন।
ক্যাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.