कैसे चेक करें कि क्या कमांड ली गई है?


9

मेरे पास एक शेल स्क्रिप्ट है जिसे कॉल foo.shकिया जाता है /usr/local/sbin। इसके अलावा मैं इसी नाम के साथ एक और स्क्रिप्ट का उपयोग करता हूं। इसमें संग्रहित है /home/user/scripts

दोनों रास्ते हैं PATH। मैं यह कैसे पता लगा सकता हूं foo.shकि कमांड लाइन पर टाइप करने पर उन स्क्रिप्ट्स में से कौन सी निष्पादित होती है ? क्या मैं इसे प्रभावित कर सकता हूं?

जवाबों:


10

कुछ दिनों पहले मैं अपने जवाब से संतुष्ट था। मुझे यह भी पता था कि whichकमांड का परीक्षण करने के लिए कमांड का उपयोग नहीं किया जाता है या नहीं। अब मैं अपने उत्तर से संतुष्ट नहीं हूं, और मैं इस महान प्रतिक्रिया का संदर्भ देता हूं ।


एक साधारण whichआदेश के साथ:

which foo.sh

या एक typeआदेश:

type foo.sh

और $PATHजब स्क्रिप्ट शुरू होती है, तो आप अपने या किसी निरपेक्ष पथ के माध्यम से इसे प्रभावित कर सकते हैं

/home/user/scripts/foo.sh

उदाहरण

यदि PATH को नीचे के रूप में परिभाषित किया गया है

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

और आप एक स्क्रिप्ट या कुछ और शुरू करते हैं जो एक उच्च प्राथमिकता के रूप /usr/local/binमें अंदर और अंदर /usr/binकी स्क्रिप्ट है /usr/local/bin


1
बोलने की bashऔर zshवहाँ भी typeअंतर्निहित है; इसके बजाय zsh which, अलग से bash, एक अंतर्निहित (और नहीं /usr/bin/which) है
कोस


@ ममरू धन्यवाद थोड़ा मैं इसके बारे में पहले से ही जानता था, लेकिन इस तरह के विस्तार में नहीं। मैंने अपने उत्तर में अपने विचार जोड़ दिए हैं। एक बार फिर धन्यवाद।
एबी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.