প্রতিটি বাশ কমান্ডের পরে স্ক্রিপ্টটি কীভাবে কল করা যায়


22

hey.shপ্রতিটি বাশ কমান্ডের নামে এই উদাহরণটিতে কোনও স্ক্রিপ্ট কল করা সম্ভব ?

উদাহরণস্বরূপ আপনি lsহিট এন্টার লিখুন এবং এলএস রান, তারপরে hey.shদৌড়াতে হবে।

তারপরে আপনি টাইপ করুন cd .. (বা অন্য কোনও কমান্ড) , সিডি রান তখন hey.shচালানো হবে ইত্যাদি on


2
এটি হয় এক্সওয়াই সমস্যা বা খুব বিজোড় ধারণা; আপনি আসলে কি অর্জন করার চেষ্টা করছেন?
জেসনওয়ারিয়ান

বাশ.আরসি-এ থাকতে পারে?
মুনবট 74 এ

উত্তর:


29
PROMPT_COMMAND+="hey.sh;"

PROMPT_COMMAND যদি সেট করা থাকে তবে প্রতিটি প্রাথমিক প্রম্পট দেওয়ার আগে মান একটি আদেশ হিসাবে কার্যকর করা হয়।


দ্রষ্টব্য: পরিবেশের ভেরিয়েবল বনাম শেল ভেরিয়েবল

ডিফল্টরূপে, PROMPT_COMMANDহয় না একটি এনভায়রনমেন্ট ভেরিয়েবল । এটি কেবল একটি শেল ভেরিয়েবল

উভয় ধরণের ভেরিয়েবল একইভাবে অ্যাক্সেস করা হয় ( "$variable*"), তবে পরিবেশের ভেরিয়েবলগুলি শিশু প্রক্রিয়া দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয় যেখানে শেল ভেরিয়েবলগুলি হয় না।

কনভেনশনটি হ'ল এনভায়রনমেন্ট ভেরিয়েবল + শেল ভেরিয়েবলকে বড় করা যা আপনার শেলটি কনফিগার করে (PROMPT_COMMAND আপনার শেলটি কনফিগার করে) তবে অন্য ধরণের ভেরিয়েবলগুলি ছোট ক্ষেত্রে রাখে।

ইন ব্যাশ , আপনি করতে পারেন: declare -pখুঁজে বের করতে একটি পরিবর্তনশীল রপ্তানি কিনা তা ব্যবহারকারীকে (= একজন এনভায়রনমেন্ট ভেরিয়েবল) অথবা না:

$ declare -p PATH
declare -x PATH=... #-x means it's exported
$ declare PROMPT_COMMAND
declare -- PROMPT_COMMAND=... #no -x so just a shell variable

2
@ জন না export। এটি করবেন না কেবল এটি সেট করুন (বা এটিতে যুক্ত করুন, যেমন উপরে বর্ণিত)।
পিএসকোকিক

ঝরঝরে, তবে কী হবে?
চাঁদবুট 74

2
@ moonbutt74 প্রতিটি আদেশের পূর্বে == আপনার বাশ অধিবেশন শুরুতে + প্রতিটি আদেশের পরে +
PSkocik

@ স্পোকিক আমি পেয়েছি যে আমি ইতিমধ্যে যদি আগ্রহী হয়ে থাকি যদি এটি ইতিমধ্যে পরিবেশগত পরিবর্তনশীল ছিল, দ্রুত প্রতিধ্বনি আদেশের পরে আমি জানতে পারি এটি ছিল। এটি ঠিক আমি যা খুঁজছিলাম তা করে
জন

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