या तो मैं यहां जो पूछ रहा हूं वह बेहद अपरंपरागत / अपरंपरागत / जोखिम भरा है, या मेरे Google-फू कौशल केवल सूंघने तक नहीं हैं ...
एक bash
शेल स्क्रिप्ट में, क्या यह बताने का कोई आसान तरीका है कि क्या यह किसी अन्य शेल स्क्रिप्ट से सॉर्ट हो रहा है, या क्या यह स्वयं द्वारा चलाया जा रहा है? दूसरे शब्दों में, क्या निम्नलिखित दो व्यवहारों के बीच अंतर करना संभव है?
# from another shell script
source myScript.sh
# from command prompt, or another shell script
./myScript.sh
मैं जो करने की सोच रहा हूं वह उपयोगिताओं जैसे शेल स्क्रिप्ट बनाने के लिए है जिसमें bash
फ़ंक्शन शामिल हैं जो कि खट्टा होने पर उपलब्ध कराए जा सकते हैं। जब यह स्क्रिप्ट स्वयं द्वारा चलाई जा रही है, तो मैं इसे कुछ कार्यों को करना चाहूंगा, जो परिभाषित कार्यों के आधार पर भी होंगे। वहाँ पर्यावरण चर के कुछ प्रकार है कि इस खोल स्क्रिप्ट पर ले जा सकता है, जैसे
some_function() {
# ...
}
if [ -z "$IS_SOURCED" ]; then
some_function;
fi
अधिमानतः, मैं एक ऐसे समाधान की तलाश कर रहा हूं जिसमें किसी भी ध्वज चर को सेट करने के लिए कॉलर स्क्रिप्ट की आवश्यकता न हो।
संपादित करें : मुझे स्क्रिप्ट के सोर्सिंग और चलाने के बीच का अंतर पता है, मैं यहां यह पता लगाने की कोशिश कर रहा हूं कि क्या उस स्क्रिप्ट का अंतर बताना संभव है जिसका उपयोग किया जा रहा है (दोनों तरीकों से)।
.
कमांड के बारे में बिल्कुल नहीं पूछ रहा है , लेकिन यह पता लगाने के बारे में कि क्या स्क्रिप्ट में खराबी की गई है या सामान्य रूप से चलती है (यानी एक उपखंड में)।