ঘটনাক্রমে sh দিয়ে পার্ল-স্ক্রিপ্ট চলছে, কীভাবে এটি সনাক্ত করা যায় এবং পদক্ষেপ নেওয়া যায়?


3

আমার বেশ কিছুদিন ব্যাশ-ব্যাকআপ-স্ক্রিপ্ট ছিল যা আমার জন্য ঠিক কাজ করেছিল, তবে এখন আমার কিছু বৈশিষ্ট্য প্রয়োজন এবং সেগুলি পার্ল-স্ক্রিপ্টে রেখেছি। এটি পুরোপুরি সূক্ষ্মভাবে কাজ করে, এবং আমি খুশি। তবে আমার পেশী-স্মৃতি সর্বদা "পার্ল ব্যাকআপ" (বা "। / ব্যাকআপ" বা এর মতো কিছু ব্যবহার করার পরিবর্তে "sh ব্যাকআপ" টাইপ করতে চায়। আমি "শ ব্যাকআপ" দিয়ে শুরু করতে পেরেছিলাম এবং এখন আমি সবে থেকে এ থেকে মুক্তি পেতে পারি।

আমার ধারণাটি হ'ল:

একটি মডিউল ক্লিভারফিল্টার.এমপি থাকা:

package cleverfilter;
use Filter::Simple;
FILTER {
    s/perl backup; exit;//g;
};
1;

এবং এটি আমার ব্যাকআপ-স্ক্রিপ্টে:

#!/usr/bin/perl

use cleverfilter;

perl backup; exit;

use strict;
use warnings;
...

এর পিছনে ধারণাটি ছিল যে পার্ল-স্ক্রিপ্ট (ফিল্টারটির মাধ্যমে) "পার্ল ব্যাকআপ; প্রস্থান;" - অংশটি সরিয়ে ফেলবে, কিন্তু বাশ তা করবে না। পার্ল ভাল চলবে, এবং বাশ এই স্ক্রিপ্টটিকে পার্ল-স্ক্রিপ্ট হিসাবে চালাবে run

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

backup: 3: backup: use: not found

অবশ্যই, আমি কেবল একটি ফাঁকা প্রোগ্রাম "ব্যবহার" তৈরি করতে পেরেছিলাম যা আগত সমস্ত পরামিতিগুলিকে উপেক্ষা করে, তবে এটি এটির পক্ষে সুন্দর সমাধান নয়।

সুতরাং, আমার প্রশ্ন এখানে: কিছু স্ক্রিপ্ট-অংশ লেখার কোনও উপায় আছে যা বাশ দিয়ে কার্যকর করা হবে, তবে পার্ল দিয়ে নয়? কিছু ধরণের মন্তব্য, যেমন, এইচটিএমএলগুলিতে এই অদ্ভুত আই-স্টাইল-মন্তব্য-ট্যাগগুলির সাথে?

নাকি এর থেকে আরও ভাল সমাধান আছে? এমন কিছু সহজ যা আমি এখনও ভাবিনি?

উত্তর:


4

একটি বিকল্প হ'ল perl -xএই বিকল্পটি ব্যবহার করা :

#!/bin/bash
perl -x "$0"
exit
#!/bin/perl
#perl code goes here

আমার সিস্টেমে যেগুলি sh বা পার্লের জন্য কাজ করে।

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