আমার কাস্টম বাশ ফাংশন এবং উপস্ব কীভাবে ডকুমেন্ট করবেন?


11

সমস্যা:

আমার একাধিক বাশ ফাংশন এবং উপকরণ রয়েছে। আমি এগুলির সবগুলি আমার মাথার উপরের দিক থেকে মনে করতে পারি না, তাই আমি সাধারণত আমার যা প্রয়োজন তা সন্ধান করার জন্য আমার .bash_functionsএবং .bash_aliasesফাইলগুলি খোলার চেষ্টা করি ।

প্রশ্ন (গুলি):

আমি কীভাবে ব্যাশ প্রম্পট থেকে উপলব্ধ ফাংশন / উপকরণ তালিকা করতে পারি?

মন্তব্যগুলি (পিএইচপিডোকের মতো কিন্ডার) ব্যবহার করে আমার বাশ ফাংশন / উপকরণগুলি নথী করা কি আমার পক্ষে সম্ভব?

আমি কেবল ফাইলগুলি না খালি যা পাওয়া যায় তা আউটপুট করার সহজ / দুর্দান্ত উপায় চাই। কমান্ড চালানো ভাল হবে এবং এটি আমার ফাংশন / উপস্বের একটি গতিশীল তালিকা আউট করিয়ে দেবে (ব্যবহারের উদাহরণগুলি একটি প্লাস হবে)। :)

উত্তর:


17

সক্রিয় অ্যালিয়াসগুলির তালিকা করতে, চালান:

alias

সমস্ত সক্রিয় ফাংশনের নাম দেখতে, চালান:

declare -F

সমস্ত সক্রিয় ক্রিয়াকলাপের নাম এবং সংজ্ঞা দেখতে, চালান:

declare -f

অধিক

এলিয়াস সম্পর্কিত তথ্যও পাওয়া যায় এটির সাথে স্ক্রিপ্ট-বান্ধব বিন্যাস:

declare -p BASH_ALIASES

man bashaliasবিল্টিনে আরও তথ্য সরবরাহ করে :

   alias [-p] [name[=value] ...]
          Alias with  no  arguments  or  with  the  -p
          option  prints  the  list  of aliases in the
          form alias name=value  on  standard  output.
          When  arguments  are  supplied,  an alias is
          defined for each name whose value is  given.
          A  trailing  space in  value causes the next
          word to be checked  for  alias  substitution
          when  the  alias is expanded.  For each name
          in the argument list for which no  value  is
          supplied, the name and value of the alias is
          printed.  Alias returns true unless  a  name
          is   given  for  which  no  alias  has  been
          defined.

ফাংশন সম্পর্কিত, man bashব্যাখ্যা করে যে বিকল্পটি সেট করা declareথাকলে এখনও আরও তথ্য পাওয়া যায় extdebug:

   Function  names  and definitions may be listed with
   the -f option to the  declare  or  typeset  builtin
   commands.  The -F option to declare or typeset will
   list the function names only  (and  optionally  the
   source  file and line number, if the extdebug shell
   option is enabled).

লিংক

  1. http://ss64.com/bash/alias.html
  2. http://linfo.org/alias.html

হা! খুব সহজ. ধন্যবাদ! এটা বেশ সহজ। কাস্টম ফাংশন তালিকাভুক্ত করার জন্য কোনও টিপস?
mululse

1
@ মিহুলস আপনার স্বাগতম ফাংশনগুলির জন্য আপডেট দেখুন।
1024

আপডেটের জন্য ধন্যবাদ! আমি আপনাকে declareতথ্য যুক্ত দেখছি । ধন্যবাদ! আমি সঙ্গে declareএবং aliasদ্রুত এবং সহজে দেখার জন্য বাস করতে পারে । আমি কেবল লক্ষ্য করেছি যে আমি এটি করতে পারি declare -f treeযা কেবলমাত্র ফাংশনটিই স্পিট করে tree। শান্ত! আমি বিক্রি হয়েছি। আবার ধন্যবাদ! (আমি 4 মিনিটের মধ্যে উত্তর হিসাবে এটি গ্রহণ করতে পারি।)
mhulse

2
@ashumeow ss64.com এর লিখিত বিবরণ ss64.com/bash/alias.html এ তাদের কপিরাইট এবং বিতরণ শর্তাদি ss64.com/docs/copyright.html (অ-বাণিজ্যিক!) BREAK জিএফডিএল - ব্যাশের লাইসেন্সের শর্তাদি ম্যানুয়াল, কারণ এগুলিতে gnu.org/software/bash/manual/html_node/Aliases.html এর পাঠ্য অন্তর্ভুক্ত রয়েছে : ব্যাশ ম্যানুয়ালটির ডেরিভেটিভ কাজের বাণিজ্যিক ব্যবহারের অনুমতি দেওয়া উচিত। রেফারেন্স ব্যতীত তাদের সংকলন এটি এবং এই জাতীয় অনুরূপ কারণে ভাল বলে মনে হচ্ছে না।
ইম্জ - ইভান জ্যাকারিয়াচেভ

আপনার ব্যবহৃত শেল স্ক্রিপ্ট বিকল্পগুলির সহজ প্রসেসিংয়ে চিত্রিত কৌশলটি খুঁজে পেতে পারেন।
ডকসালভেজার

7

আমি আমার স্ক্রিপ্টগুলির জন্য একটি - সহায়তা বিকল্প তৈরি করতে নীচের ফাংশন এবং জাভাদোক মতামত মতামত ব্যবহার করুন:

PROG=$0 #The program name, used within doHelp

# Print a help message
# doHelp uses lines starting with ## to create the output
# the tags {@param ...} and {@code ...} colorize words
doHelp() {
grep '^##' "${PROG}" |
sed -e 's/^##[[:space:]]*//' |
while read line; do
    if ( echo "${line}" | grep -q '{@param [^}]*}' ); then
        # color parameter and echo evaulated value
        eval echo -e $(echo ${line} | sed \
            -e 's/^\(.*\){@param \([^}]*\)}\(.*\)$/\
            \"\1\\\\E[32;40m\2\\\\E[37;40m\\t(value: \"$\2\")\3\"/');
    else
        # other color commands
        echo -e $(echo ${line} | sed \
            -e 's/{@code \([^}]*\)}/\\E[36;40m\1\\E[37;40m/g');
    fi
done;
}

https://github.com/kaspervandenberg/aida/blob/master/Search/zylabPatisClient/src/main/scripts/generateReport.sh আপনি দেখতে পারেন কিভাবে এটা প্রকৃত স্ক্রিপ্ট মধ্যে ব্যবহার হচ্ছে।


এটা সত্যিই দুর্দান্ত! আমি আশা করি আমি একাধিক উত্তরের জন্য সবুজ চেক চিহ্ন দিতে পারতাম। ধন্যবাদ ক্যাস্পার! আমি এটি চেষ্টা করে অপেক্ষা করতে পারি না। :)
mululse

grep: : No such file or directoryএটি ফাংশন হিসাবে ইউনিক্স / ব্যাশের মাধ্যমে চালানোর চেষ্টা করার সময় আমি পেতে থাকি । … আমি জানি এই প্রশ্নটি পুরানো, তবে আপনি কী উদাহরণ দিয়ে যেতে পারেন যে কমান্ড লাইনের মাধ্যমে কেউ কীভাবে কেবল এটির কাজ করবে? ধন্যবাদ !!! :)
mululse

1
@ মুলস, আমি উল্লেখ করতে ভুলে গেছি যে আপনার সংজ্ঞা দেওয়া দরকার PROG=$0; উত্তর আপডেট হয়েছে।
ক্যাস্পার ভ্যান ডেন বার্গ

ধন্যবাদ ক্যাস্পার! আমি সত্যিই এটি কাজে লাগাতে চাই, তবে এখনও পর্যন্ত আমার ভাগ্য নেই। আমি আপনাকে বগিং চালিয়ে যেতে ঘৃণা করব, তবে আপনি কি বাশ কমান্ড লাইন থেকে একটি কল কল সরবরাহ করতে পারবেন? এছাড়াও, আমি স্থাপন করতে পারে --helpবা -help(অর্থাত, if echo "$@" | egrep -q -e '(-h)|(--help)'; then ...আমি সেটআপ আমার ভালোবাসতাম। .bash_functions/ aliasesমঞ্জুর করার জন্য aliasname -hবা function arg --helpআবার ধন্যবাদ।
mhulse

1
@mhulse কমান্ডলাইন থেকে প্রাপ্ত উদাহরণটি generateReport.shকেবলমাত্র তখনই কার্যকর যদি আপনি জিলাবের মাধ্যমে মেডিকেল ডকুমেন্টগুলি সূচী করতে চান এবং এডির মাধ্যমে সেগুলি জিজ্ঞাসা করতে চান। তবে, সাহায্যের ফাংশন ব্যবহার নিম্নলিখিত চেষ্টা: wget https://raw.githubusercontent.com/kaspervandenberg/aida/master/Search/zylabPatisClient/src/main/scripts/generateReport.sh && chmod a+x generateReport.sh && ./generateReport.sh --helpaliasname.বাশ_ফিউশনগুলি ব্যবহার করে কীভাবে দ্বিতীয় অংশটি অর্জন করবেন তা আমি (এখনও) জানি না।
ক্যাস্পার ভ্যান ডেন বার্গ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.