के साथ निष्पादित किया गया है, मैं स्क्रिप्ट में जांच करने की कोशिश कर रहा हूं, कि यदि उस स्क्रिप्ट को -x ध्वज के साथ निष्पादित किया गया है जो शैल स्क्रिप्ट के लिए डिबगिंग के लिए है। क्या स्क्रिप्ट में यह जांचने का कोई तरीका है कि -x सेट है। मैं सशर्त रूप से जांचना चाहता हूं और सेट होने पर कुछ करता हूं।क्या यह जांचने का कोई तरीका है कि शेल स्क्रिप्ट को -x ध्वज
5
A
उत्तर
10
उपयोग:
if [[ $- == *x* ]]; then
echo "debug"
else
echo "not debug"
fi
से Bash manual:
(। $ -, एक हाइफन) के रूप में मंगलाचरण पर निर्दिष्ट वर्तमान विकल्प झंडे तक विस्तृत होता, सेट builtin आदेश द्वारा, या उन सेट खोल के द्वारा (जैसे -i विकल्प)।
2
([[ ]]
तरह bashisms के बिना) यह करने के लिए पोर्टेबल तरीका होगा
case $- in
(*x*) echo "under set -x"
esac
2
आप जाल इतना की तरह डीबग संकेत, कर सकते हैं:
trap "do_this_if_it_is_being_debugged" DEBUG
function do_this_if_it_is_being_debugged() {
...
}
नोट इस की जरूरत है निष्पादित किया जाना है set -x
को
0
लो से निष्पादित किया जा रहा है $SHELLOPTS
में ठीक है।
उदाहरण के लिए:
if grep -q xtrace <<<"$SHELLOPTS"; then
DO_SOMETHING;
fi
संबंधित मुद्दे
- 1. शेल स्क्रिप्ट यह जांचने के लिए कि कोई निर्देशिका मौजूद है या नहीं?
- 2. क्या यह जांचने का कोई तरीका है कि कोई चर जावास्क्रिप्ट में दिनांक है या नहीं?
- 3. क्या यह जांचने का कोई तरीका है कि मूल जावास्क्रिप्ट फ़ंक्शन बंदर था?
- 4. वेग: यह जांचने का कोई तरीका है कि चर परिभाषित किया गया है या नहीं
- 5. यह जांचने के लिए कि बैश स्क्रिप्ट
- 6. क्या यह जांचने का कोई तरीका है कि प्रतिक्रिया घटक अनमाउंट किया गया है या नहीं?
- 7. यह जांचने का सबसे अच्छा तरीका क्या है कि कोई S3 ऑब्जेक्ट मौजूद है या नहीं?
- 8. क्या यह जांचने का कोई तरीका है कि अलार्म पहले से सेट है या नहीं?
- 9. क्या यह जांचने का कोई तरीका है कि रूबी चर में बाइनरी डेटा है या नहीं?
- 10. क्या यह जांचने का कोई तरीका है कि पॉइंटर खतरे में है या नहीं?
- 11. क्या यह जांचने का कोई आसान तरीका है कि ऑब्जेक्ट JSON serializable है python में?
- 12. क्या यह जांचने का उचित तरीका है कि mysql_query() ने कोई परिणाम लौटाया है?
- 13. जेएस यह जांचने का कोई तरीका है कि कोई ईवेंट मौजूद है या नहीं?
- 14. SQLite: यह जांचने का सबसे तेज़ तरीका है कि तालिका में x पंक्तियों से अधिक
- 15. यह जांचने का सबसे अच्छा तरीका है कि कोई सूची शून्य नहीं है या नहीं?
- 16. क्या यह जांचने का कोई तरीका है कि निर्देशिका में इंगित प्रतीकात्मक लिंक हैं या नहीं?
- 17. शेल स्क्रिप्ट
- 18. यह जांचने का सबसे अच्छा तरीका क्या है कि कोई वेबसाइट जावास्क्रिप्ट
- 19. क्या यह जांचने का कोई तरीका है कि जावा में दो ऑब्जेक्ट्स अलियाकृत हैं या नहीं?
- 20. क्या यह जांचने का कोई तरीका है कि दो सरणी के समान तत्व हैं या नहीं?
- 21. क्या कोई सबप्रोसेस अभी भी चल रहा है या नहीं यह जांचने का कोई तरीका है?
- 22. यह जांचने के लिए कि क्या EXE को LARGEADDRESSAWARE
- 23. शेल स्क्रिप्ट में $ @ का मतलब क्या है?
- 24. क्या कोई स्केलर स्ट्रिंग किया गया है या नहीं, यह जांचने का कोई तरीका है?
- 25. क्या कोई कॉलम शून्य है या नहीं, यह जांचने का कोई त्वरित तरीका है?
- 26. यह जांचने का सही तरीका है कि कोई फ़ॉर्म पहले से दिखाया गया है या नहीं?
- 27. यह जांचने का सबसे अच्छा तरीका है कि कोई सेवा लगी है
- 28. यह जांचने का कोई तरीका है कि XmlSchemaParticle एक खाली पट्टी है या नहीं?
- 29. एमएसवीसी - यह जांचने का कोई तरीका है कि फ़ंक्शन वास्तव में रेखांकित है या नहीं?
- 30. सरल स्क्रिप्ट यह जांचने के लिए कि क्या कोई वेबपृष्ठ अपडेट किया गया है
@ जॉन-kugelman, आप के आसपास '$ -' उद्धरण हटाया भले ही यह खाली हो सकता है। क्या यह मानना सुरक्षित है कि भले ही '$ -' एक खाली स्ट्रिंग में फैलता है, '[['' '= 'का उपयोग करके इसकी तुलना करने की अनुमति होगी? – ghoti
@ghoti '[' शैल बिल्टिन है और '[[' शैल कीवर्ड है और बाद में आपको उद्धरण जोड़ने की आवश्यकता नहीं है। एकल ब्रैकेट का उपयोग करते समय: '[' आपको उद्धरण जोड़ना होगा। आप अधिक जानकारी यहां देख सकते हैं [यहां] (http://serverfault.com/questions/52034/what-is-the-difference-between-double-and-single-square-brackets-in-bash) –