যুক্তি এবং বিকল্পগুলির অর্থ পরিবর্তনের বিষয়ে বিভ্রান্তি, কোনও অফিসিয়াল স্ট্যান্ডার্ড সংজ্ঞা আছে কি?


11

কমান্ডের সিনট্যাক্স সম্পর্কিত বিকল্পগুলি এবং যুক্তিগুলি কী তা বোঝার জন্য আমি একটি বিভ্রান্তিকর বিভিন্নতা দেখতে পেয়েছি।

উদাহরণস্বরূপ, আমি এর মতো সংজ্ঞা পেয়েছি:

  • command -a -b -c d e f

    কিছু মধ্যে পার্থক্য -a -b -c, তাদের বিকল্প বা সুইচ কল এবং d e fতাদের আর্গুমেন্ট কল করে।

  • command -a -b -c d e f

    কিছু, উদাহরণস্বরূপ একটি bashম্যানুয়াল, সমস্ত -a -b -c d e fআর্গুমেন্ট কল করে এবং ব্যাখ্যা করে যে এগুলি সমস্ত $1 $2 $3 $4 $5 $6যথাক্রমে একটি স্ক্রিপ্ট থেকে অ্যাক্সেসযোগ্য ।

  • command -a b=c

    কিছু -aএকটি বিকল্প, bএকটি আর্গুমেন্ট এবং cমান বলে, কিন্তু অন্যরা এটিকে প্রথম দুটি পয়েন্টের মতো মিশ্রিত করে, বিভিন্ন ক্ষেত্রে সমস্ত -a b cআর্গুমেন্টকে ডাকে ।

এই তিনটি সংস্করণ কেবল বিভিন্ন কলিং জাতগুলির আধিক্যের উদাহরণ, আমি কীভাবে সেগুলি সব তালিকাভুক্ত করতে জানি না, তবে আমি লক্ষ্য করেছি যে কোনও নির্দিষ্ট নামকরণের কনভেনশন নেই sure

বা কমপক্ষে, আমি জানলাম এমন কোনও প্রমিত নামকরণ কনভেনশন নেই, কারণ আমি বিভিন্ন এলোমেলো উত্স জুড়ে এসেছি, তবে আনুষ্ঠানিক লিনাক্স এবং জিএনইউভুক্ত সাইট বা ম্যানুয়ালগুলির মধ্যেও আমি এই অসঙ্গতি পূরণ করতে পেরেছি।

আমি উল্লেখ করতে পারি এমন কোন প্রশ্নবিদ্ধ অফিসিয়াল নামকরণ প্রকল্প?


দ্বিতীয় রূপটি তার নিজস্ব দৃষ্টিকোণ থেকে 100% সঠিক। প্রসঙ্গটি খুব গুরুত্বপূর্ণ।
ওসকার স্কোগ

উত্তর:


18

থেকে অভিযোজিত POSIX মান এর "ইউটিলিটি আর্গুমেন্ট সিনট্যাক্স" বিভাগে :

utility_name [-a] [-b] [-c option_argument]
             [-d|-e] [-f[option_argument]] [operand...]

উদাহরণে ইউটিলিটির নাম দেওয়া হয়েছে utility_name। এটি বিকল্প , বিকল্প-যুক্তি এবং অপারেশনগুলি অনুসরণ করে

-অক্ষর এবং একক অক্ষর বা অঙ্কগুলি সমন্বিত যুক্তিগুলি , যেমন a, বিকল্পগুলি (বা, ically তিহাসিকভাবে , পতাকা ) হিসাবে পরিচিত । কিছু বিকল্প অপশন-যুক্তি অনুসরণ করে , যেমন দেখানো হয়েছে [-c option_argument]। শেষ বিকল্পগুলি এবং বিকল্প-যুক্তির অনুসরণ করে যুক্তিগুলির নাম অপারেন্ড করা হয়

মানটি "আর্গুমেন্ট" হিসাবেও সংজ্ঞায়িত করে

শেল কমান্ডের ভাষায়, একটি প্যারামিটার একটি ফাংশনগুলির argvমধ্যে একটি দ্বারা তৈরি অ্যারেতে একক স্ট্রিংয়ের সমতুল্য হিসাবে একটি ইউটিলিটিতে স্থানান্তরিত execকরে। একটি আর্গুমেন্ট হ'ল বিকল্প, আর্গুমেন্ট বা কমান্ডের নাম অনুসরণ করে অপারেশনগুলির মধ্যে একটি।


utility_nameকমান্ড লাইনে থাকা সমস্ত জিনিস হ'ল ইউটিলিটির আর্গুমেন্ট এবং এগুলি শেল স্ক্রিপ্ট হলে তারা সমস্ত অবস্থানগত পরামিতিগুলিতে প্রদর্শিত হবে। শর্তাবলী বিকল্প, বিকল্প-যুক্তি এবং অপারেন্ড কমান্ড লাইনে এই যুক্তিগুলির জন্য আরও সুনির্দিষ্ট নাম।

"পতাকা" এবং "স্যুইচ" "বিকল্প" এর সাধারণ প্রতিশব্দ।

এর ব্যাপারে

utility -a b=c
  • -aএবং b=cযুক্তি,
  • -aএকটি বিকল্পের যদি ইউটিলিটি যেমন এটা স্বীকার করে ( lnইউটিলিটি কোন হয়েছে -xবিকল্প, তাই -xকরার জন্য একটি বিকল্প নয় ln, কঠোরভাবে বলতে, এবং ln -xএকটি ডায়গনিস্টিক বার্তা আরম্ভ হবে),
  • b=cএকটি বিকল্প-যুক্তি যদি-a বিকল্প, একটি আর্গুমেন্ট লাগে অন্যথায় এটি অপেরান্ড আছে,
  • bএবং cএগুলি বিকল্প নয় , বিকল্প-যুক্তি এবং নিজের মধ্যে অপারেশন নয়।

আপনি উপরের আমার পাঠ্য থেকে লক্ষ্য করুন, কোনও ইউটিলিটির সংক্ষিপ্তসার থেকে কাজ করা (ইউটিলিটির ম্যানুয়াল দ্বারা দেওয়া হিসাবে) কমান্ড লাইনে টাইপ করা জেনেরিক কমান্ডটি ডিকোড করার চেয়ে সহজ হত। ম্যানুয়ালটিতে স্পষ্টভাবে জানানো হবে যে বিকল্পগুলি কী কী বিকল্প-যুক্তি গ্রহণ করে এবং কী যুক্তিগুলি অপারেশনগুলি ইত্যাদি takes

cএকটি "মান" কল করা IMHO পুরোপুরি ঠিক আছে। এটি এমন কোনও বিষয় নয় যা মানসম্মত হয় তবে আপনি যদি " cদেওয়া মান হয়b " বলে থাকেন তবে খুব কম লোকই আপনাকে ভুল বুঝবে । এটি প্রশ্নে ইউটিলিটির প্রসঙ্গ থেকে পরিষ্কার হবে।

উদাহরণ স্বরূপ

$ awk -v var="d" '...' data.in

যে কেউ যিনি বিষয়ে জানেন awkযে বলতে হবে -v var="d"মানে হলো " পরিবর্তনশীল মান নির্ধারিত হয় কমান্ড লাইন "।awkvard

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.