BASH एक $PROMPT_COMMANDपर्यावरण चर का समर्थन करता है जो किसी भी प्रथम-स्तरीय इंटरैक्टिव प्रॉम्प्ट से पहले निष्पादित होने वाली एक कमांड को परिभाषित करता है। मुझे लगता है कि एक ZSH संतुलन के लिए देख रहा हूँ।
प्रलेखन कहता है कि एक ऐसा कार्य है जिसे precmdमैं इसे प्राप्त करने के लिए परिभाषित कर सकता हूं; हालाँकि, मुझे नहीं पता कि इसे पर्यावरण चर से कैसे परिभाषित किया जाए।
मैंने एक पर्यावरण चर को पारित करने पर विचार किया है जो ZSH को उस फ़ंक्शन की परिभाषा वाली फ़ाइल को पढ़ने देगा, लेकिन ZSH ऐसी चीजों का समर्थन नहीं करता है : यह केवल वैश्विक फ़ाइलों और फिर प्रति-उपयोगकर्ता फ़ाइलों को पढ़ता है। मैं उन्हें बदल सकता हूं लेकिन मैं उन फाइलों को संशोधित किए बिना उन्हें नहीं जोड़ सकता, जो मैं नहीं कर सकता।
तो मैं कैसे एक पर्यावरण चर के माध्यम से ZSH में एक पूर्व-शीघ्र हुक को परिभाषित करता हूं, जैसे मैं $PROMPT_COMMANDBASH में उपयोग कर रहा हूं ?
exitऔर exec, ठीक है ;))
start() { eval "$@"; echo post-command-code }और फिर पूर्व निर्धारित के साथ कमांड लाइन को निष्पादित करने के लिए एक zle- बाध्यकारी का उपयोग करें start?
DEBUGजाल एक अच्छा खोज है, लेकिन आप अभी भी समस्या है कि यह कैसे परिभाषित करने के लिए किया है। मैंने अपना उत्तर एक बार और बढ़ा दिया है, लेकिन मैं आपको DEBUG ट्रैप समाधान के बारे में अपना उत्तर लिखने के लिए इसे छोड़ देता हूं। :)