মাল্টি-লাইন বাশ কমান্ডে মন্তব্যগুলি


32

এই একক-কমান্ড BASH স্ক্রিপ্ট ফাইলটি বোঝা কঠিন, তাই আমি প্রতিটি ক্রিয়াটির জন্য একটি মন্তব্য লিখতে চাই:

echo 'foo'     \
| sed 's/d/a/' \
| sed 's/e/b/' \
| sed 's/f/c/' \
> myfile

(সেডটি একটি উদাহরণ, আসলে এটি গ্রেপস এবং টিআরএস এবং আফস এর মিশ্রণ)

আমি লাইনগুলি নকল করা বা প্রতিটি মন্তব্য মন্তব্য করা লাইন থেকে দূরে এটি ঘৃণা করব।
তবে একই সময়ে BASH "ইন-লাইন" মন্তব্যের অনুমতি দেবে বলে মনে হয় না।

এই সমস্যা সমাধানের জন্য কোনও মার্জিত উপায়?

উত্তর:


51

পাইপের পরে মন্তব্যগুলির সাথে লাইনের শেষে রাখুন:

$ echo 'foo' |
sed 's/f/a/' | # change first f to a
sed 's/o/b/' | # change first o to b
sed 's/o/c/'   # change second o to c
abc

কিছু অর্থ
পাই

15

নন- পাইপলাইন মাল্টলাইন কমান্ডটি মন্তব্য করার সময় আপনি যদি এই প্রশ্নটির বিষয়ে হয়ে থাকেন :

$ echo 'foo' |
sed -e 's/f/a/' `: # change first f to a` \
    -e 's/o/b/' `: # change first o to b` \
    -e 's/o/c/' `: # change second o to c`

আপনি যদি স্বয়ংক্রিয়ভাবে মন্তব্য করার মতো কিছু বিকৃত কিছু না করেন তবে পাইপের জন্য মাইকেলের উত্তরের চেয়ে এটি পছন্দ করার কারণ আমি দেখতে পাচ্ছি না, তবে আপনি যদি সত্যিই এটি চান:

$ echo 'foo' |
sed 's/f/a/' | `: # change first f to a` \
sed 's/o/b/' | `: # change first o to b` \
sed 's/o/c/'   `: # change second o to c`

বা:

$ echo 'foo' |
sed 's/f/a/' `: # change first f to a` |
sed 's/o/b/' `: # change first o to b` |
sed 's/o/c/' `: # change second o to c`

সূত্র: http://unix.derkeiler.com/Newsgroups/comp.unix.solaris/2005-07/0991.html


10

ঠিক আছে, আমি এইভাবে পছন্দ করি,

echo 'foo' | {
  # change first f to a
  # you can add more lines of comment on the command options
  sed 's/f/a/'
} | {
  # change first o to b
  sed 's/o/b/'
} | {
  # change second o to c
  sed 's/o/c/' 
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.