ইন্টারেক্টিভভাবে ব্যবহারের উদ্দেশ্যে উদ্দেশ্যে ফাংশনগুলিতে ব্যবহারের মন্তব্যগুলি প্রদর্শন করা


11

আমার মধ্যে অনেকগুলি ফাংশন সংজ্ঞায়িত করা হয়েছে .bashrc, টার্মিনালের সাথে ইন্টারেক্টিভভাবে ব্যবহার করার উদ্দেশ্যে। আমি সাধারণত তাদের পূর্ববর্তী ব্যবহারের বর্ণনা দিয়ে একটি মন্তব্য দিয়েছিলাম:

# Usage: foo [bar]
# Foo's a bar into a baz
foo() {
  ...
}

উত্স কোডটি ব্রাউজ করা হলে এটি ঠিক আছে, তবে typeফাংশনটি কী করে তার একটি দ্রুত অনুস্মারক পেতে টার্মিনালে চালানো ভাল । তবে এটি (বোধগম্য) মন্তব্যগুলি অন্তর্ভুক্ত করে না:

$ type foo
foo is a function
foo ()
{
    ...
}

কোনটি আমাকে ভাবতে পেরেছিল "এই ধরণের মন্তব্যগুলি যদি এগুলি typeপ্রদর্শন করতে পারে তবে কি ভাল লাগবে না ?" এবং পাইথনের ডক্টাস্টিংসের চেতনায় আমি এটি নিয়ে এসেছি:

foo() {
  : Usage: foo [bar]
  : "Foo's a bar into a baz"
  ...
}

$ type foo
foo is a function
foo ()
{
    : Usage: foo [bar];
    : "Foo's a bar into a baz";
    ...
}

এখন ব্যবহার ঠিক typeআউটপুট অন্তর্ভুক্ত করা হয় ! অবশ্যই আপনি দেখতে পাচ্ছেন উদ্ধৃতিটি একটি সমস্যা হয়ে দাঁড়ায় যা ত্রুটি-প্রবণ হতে পারে, তবে এটি কার্যকর হলে এটি ব্যবহারকারীর অভিজ্ঞতা experience

সুতরাং আমার প্রশ্ন, এটি কি ভয়ানক ধারণা? অতিরিক্ত প্রসঙ্গের সাথে ব্যাশ ফাংশন ব্যবহারকারীদের প্রদানের জন্য আরও ভাল বিকল্প (যেমন ফাংশনগুলির জন্য man/ যেমন info) রয়েছে?

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

এগুলি সম্পাদনা করুন মোটামুটি সহজ সহায়ক-শৈলীর কাজ এবং আমি কেবল ইন্টারেক্টিভভাবে কিছু অতিরিক্ত প্রসঙ্গ পেতে চাই। অবশ্যই আরও জটিল স্ক্রিপ্টগুলির জন্য যা পতাকাগুলি বিশ্লেষণ করে আমি একটি --helpবিকল্প যুক্ত করতাম , তবে এগুলির জন্য সবকিছুতে হেল্পের পতাকা যুক্ত করা কিছুটা বোঝা হবে। সম্ভবত এটি আমার জন্য গ্রহণযোগ্য একটি ব্যয়, তবে এই :হ্যাকটি আমাদের সম্পাদনাটি পড়ার উত্সটি আরও শক্ত করে না দিয়ে যুক্তিসঙ্গতভাবে ভালভাবে কাজ করছে বলে মনে হচ্ছে।

উত্তর:


8

আমি মনে করি না এটি করার জন্য একটি ভাল উপায় আছে।

অনেকগুলি ফাংশন, স্ক্রিপ্ট এবং অন্যান্য এক্সিকিউটেবল একটি সহায়তা বার্তা সরবরাহ করে যদি ব্যবহারকারী সরবরাহ করে -hবা --helpবিকল্প হিসাবে:

$ foo() {
[[ "$1" =~ (-h|--help) ]] && { cat <<EOF
Usage: foo [bar]
Foo's a bar into a baz
EOF
return;
}
: ...other stuff...
}

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

$ foo -h
Usage: foo [bar]
Foo's a bar into a baz

$ foo --help
Usage: foo [bar]
Foo's a bar into a baz

হ্যাঁ, আমার এটি উল্লেখ করা উচিত ছিল। এগুলি সহজ ফাংশন এবং আমি এগুলি অত্যধিক জটিল না করার চেষ্টা করছি। কমান্ডগুলির জন্য যে পতাকাগুলি পার্সিংয়ের যোগ্যতা আমি অবশ্যই একটি --helpবিকল্প যুক্ত করব।
ডিমো 414

প্রোগ্রামিংয়ে, ধারাবাহিকতা একটি পুণ্য। এছাড়াও, এটি "জটিল" বলতে কী বোঝায় তার উপরও নির্ভর করে।
1024

এবং, আপনার পদ্ধতির চালাক এবং ভাল (এবং আপনার প্রশ্নের ইতিমধ্যে আমার +1 আছে)।
1024

1
ধন্যবাদ; আপনার প্রয়োগটিও --helpআক্রমণাত্মক নয়, যা আমি মনে করি এই ক্ষেত্রে আমার প্রাথমিক মানদণ্ড। আমি :কৌশলটি ব্যবহার করতে পারি কারণ এটি আমার ব্যবহারের ক্ষেত্রে আরও সরাসরি ফিট করে তবে আমি আপনাকে সমর্থন করে যে এটি সমর্থন করা কঠিন নয় --helpএবং বেশিরভাগ ব্যবহারকারীরা এটি আশা করবেন বলে আমি প্রশংসা করি।
ডিমো 414

1
+1 টি। আমি "getopts ব্যবহার" এর উত্তর দিতে যাচ্ছিলাম তবে অন্য কোনও বিকল্প না থাকলে এটি যথেষ্ট পরিমাণে কাজ করে। যদি ফাংশনের অন্যান্য বিকল্প থাকে তবে ব্যবহার করুন getopts
ক্যাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.