কেন একক উদ্ধৃতি গ্রেপ কাজ করে না?


0

আমি একটি স্ট্রিং মেলে চেষ্টা করছি:

* * * * * /usr/local/bin/growlnotify -t 'helloTitle' -m 'helloMessage' -n 'myApp' -sw

সঙ্গে:

crontab -l | grep '^[^#].*/usr/local/bin/growlnotify.*\-n \'myApp\'.*$'

এটি কাজ করে না: কিছুই মিলছে না।

কিন্তু:

crontab -l | grep '^[^#].*/usr/local/bin/growlnotify.*\-n.*$'

খুব ভাল কাজ করে:

* * * * * /usr/local/bin/growlnotify -t 'helloTitle' -m 'helloMessage' -n 'myApp' -sw

সমস্যাটা কী \'myApp\'?

কিভাবে গ্রাপ / সেড একক উদ্ধৃতি এড়াতে?


-1 আপনার
বক্তব্যটি

উত্তর:


3

-eবিকল্প এবং হেক্সাডেসিমাল উপস্থাপনা ব্যবহার করে একক উদ্ধৃতি থেকে মুক্তি পাওয়া যায় :

echo -e '\047'
> '

বা গ্রেপ ইন হেক্সাডেসিমাল উপস্থাপনা এবং -Pবিকল্প ব্যবহার করে :

crontab -l | grep -P '^.*/usr/local/bin/growlnotify.*\-n \047myApp\047.*$'
> * * * * * /usr/local/bin/growlnotify -t 'helloTitle' -m 'helloMessage' -n 'myApp' -sw

ss64 রেফারেন্স হিসাবে:

-P
   --perl-regexp
       Interpret PATTERN as a Perl regular expression.

আপনি যদি জিএনইউ গ্রেপ ব্যবহার করে থাকেন তবে আপনি 'ডাবল কোটস "(2 টি অক্ষর সংশোধিত) এবং ব্যাকস্ল্যাশগুলি সরিয়ে \(3 টি সরানো) মুছে ফেলা একক উদ্ধৃতিগুলিও প্রতিস্থাপন করতে পারতেন । কপি / পেস্ট প্রমাণecho "* * * * * /usr/local/bin/growlnotify -t 'helloTitle' -m 'helloMessage' -n 'myApp' -sw" | grep "^[^#].*/usr/local/bin/growlnotify.*-n 'myApp'.*$"
আদম

0

বলার জন্য দুঃখিত, তবে আপনি একক উদ্ধৃতিতে একক উদ্ধৃতি রক্ষা করতে পারবেন না। আপনার ডাবল উদ্ধৃতি ব্যবহার করতে হবে। আপনি নিজের দ্বারা এটি প্রমাণ করতে পারেন:

echo '\'' <-- doesn't work

আপনার শেলটি অন্য একটি উদ্ধৃতি আশা করবে।


2
স্পষ্ট করার জন্য: "\" একক উদ্ধৃতিতে কিছু এড়াতে ব্যবহার করা যাবে না । এটি গ্রেপ / সেড ইস্যু নয়; এটি শেল ইস্যু (বাশ, সিএসএস, ইত্যাদি ...)।
স্কট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.