मैंने पहली बार किसी C
भाषा में कोडिंग, और उपयोग करना सीखा
if ( code )
then
code
fi
यह वास्तव में मेरे लिए मेरे कोड को पढ़ने के लिए कठिन बनाता है (क्यों नहीं पूछें)। क्या कोई विकल्प है then
?
कुछ इस तरह:
if ( code ) {
code
}
fi
मैंने पहली बार किसी C
भाषा में कोडिंग, और उपयोग करना सीखा
if ( code )
then
code
fi
यह वास्तव में मेरे लिए मेरे कोड को पढ़ने के लिए कठिन बनाता है (क्यों नहीं पूछें)। क्या कोई विकल्प है then
?
कुछ इस तरह:
if ( code ) {
code
}
fi
जवाबों:
कोई विकल्प नहीं है, लेकिन आप दोनों का उपयोग कर सकते हैं यदि आपको वास्तव में ब्रेस की आवश्यकता है:
if true ; then {
something
} fi
यह ब्लॉक के निकाय के रूप में एक अनावश्यक स्पष्ट रूप से लटके हुए कमांड समूह का उपयोग करता है then
। ब्रेसिज़ के किसी भी कमांड को then
रन के समय केवल वर्तमान शेल में निष्पादित किया जाएगा , ठीक वैसे ही जैसे ब्रेसिज़ नहीं थे।
मैं वास्तव में सामान्य रूप से या कोड के लिए इस शैली की सिफारिश नहीं करूंगा कि किसी और को पढ़ने की आवश्यकता होगी, लेकिन यह आपको वह ब्रेसिज़ देता है जो आप चाहते हैं, और यदि आप एक संपादक का उपयोग कर रहे हैं जिसमें लटके हुए ब्लॉक की आवश्यकता होती है ऐसा कुछ।
{ if { [[ a == aa ]];};then { echo yes;};else { echo no;}; fi;}
- मूल रूप से, जब आप bash
पर्याप्त उपयोग करते हैं, तो मानक वाक्यविन्यास पर्याप्त रूप से परिचित हो जाता है, ताकि यह एक समस्या का अधिक न हो।
आप के लिए देख हो रहे हैं सी खोल ( csh
, tcsh
, आदि ...)। ज्ञात रहे कि प्रोग्रामिंग के लिए विशेषज्ञ इसके खिलाफ सलाह देते हैं ।
मुझे यकीन नहीं है कि जिस हिस्से को आप अनहेल्दी मानते हैं, वह तथ्य है कि then
निम्नलिखित लाइन पर है? यदि हां, तो निम्नलिखित शैली का उपयोग करने पर विचार करें:
if condition; then
stuff
fi
मैं पीछे की ओर की तरह है कि वर्तनी बयान नाम स्वीकार करना होगा fi
के लिए if
और esac
के लिए case
(लेकिन नहीं elihw
के लिए while
विचित्र की तरह है!)। लेकिन यह मानक बॉर्न शेल है, सबसे पोर्टेबल शेल सिंटैक्स जिसका आप उपयोग कर सकते हैं।
then
अनफेयरिंग नहीं मिली , यह सिर्फ इतना है कि मेरा संपादक इसी {}
जोड़े को हाइलाइट करेगा , और यह तब उपयोगी होगा जब मेरे पास किसी प्रकार की त्रुटि हो क्योंकि तब मैं आसानी से अपने सभी if
बयान देख सकता हूं और देख सकता हूं कि क्या कुछ गलत हुआ है ।
vi
के %
आदेश जो मिलान ब्रेस / कोष्ठक / ब्रैकेट के लिए कूदता है। मुझे सहानुभूति है। मैं याद आती है vi
की %
जब अजगर में प्रोग्रामिंग आदेश।
शायद यह आँखों पर आसान है:
[ condition ] && {
# statement 1
# statment 2
# ...
}
उसके अलावा, बस इसकी आदत हो जाती है। भाषा के मुहावरों का प्रयोग करें।
निम्नलिखित वहाँ के पास है। और अजीब है।
: if; { code; } && {
code
}
मुझे व्यक्तिगत रूप से कभी पसंद नहीं आया ...
if true; then
more;fi
... खुद बनो। मुझे पसंद है जब नियंत्रण शब्द का नेतृत्व करते हैं । यह मुझे हमेशा अजीब लगता था कि प्रचलित ...;then
रूप बिल्कुल आया।
if this && that
then do these things too
else i will probably get upset
fi
यह आपके अनुरोध के लगभग पूरी तरह से विपरीत है, लेकिन इसे करने का एक और तरीका है। आप आवश्यकतानुसार किसी भी पुनर्निर्देशित fi
लाइन पर भी सौदा कर सकते हैं और वे पूरे ब्लॉक पर लागू होंगे।
if(...) {
, यानी if
सी-लाइक लैंग्वेज के समान ही ब्रेस को खोलना ।
if
कमांड की निरंतरता की व्याख्या करता है , भले ही अगली पंक्ति पर हो।
;
उस मामले में परिसीमन का उपयोग करना होगा। इसलिए वे करते हैं।
:
इस तरह से शेल शेल का उपयोग करना , बस कोड की एक पंक्ति बाइट-वार सी सिंटैक्स के करीब हो सकती है, इसे किसी भी तरह से प्रोत्साहित नहीं किया जाना चाहिए।
मैं हमेशा उपयोग करता हूं:
if (code); then
code;
fi
संभवत: बिल्कुल वैसा नहीं जैसा आप चाहते हैं, लेकिन यह थोड़ा और अधिक पसंद है।