मान लीजिए कि मैं अपने पसंदीदा संपादक में वर्तमान फ़ोल्डर को खोलने के लिए e और c दोनों का त्वरित तरीके से उपयोग करना चाहता हूं।

क्या मुझे अपने बैश उपनामों को इस तरह परिभाषित करने की आवश्यकता है:

alias c="code ."
alias e="code ."

या क्या कोई और संक्षिप्त वाक्यविन्यास है? ऐसा कुछ (जो मैंने कोशिश की, लेकिन यह काम नहीं किया):

alias c,e="code ."

मुझे गाइड, वेब और bash उपनाम< को खोज कर कोई संक्षिप्त विकल्प नहीं मिला है। /a> यहाँ प्रश्न। फिर भी, नकारात्मक साबित करना कठिन है। :-)


नोट: मैं विशेष रूप से git-bash का उपयोग कर रहा हूं। मुझे लगता है कि कोई भी उत्तर आम तौर पर बैश पर लागू होगा।

0
Trevor Reid 1 नवम्बर 2019, 23:28
bash ऐसा कोई शॉर्टकट प्रदान नहीं करता है, जो वास्तव में कोड गोल्फ को छोड़कर किसी भी चीज़ के लिए उपयोगी नहीं होगा।
 – 
chepner
1 नवम्बर 2019, 23:31
2
संभावित रुचि के लिए, फ़ंक्शन लगभग हमेशा उपनामों पर पसंद किए जाते हैं, और zsh आपको एक कमांड में एक से अधिक नामों वाले फ़ंक्शन को परिभाषित करने की अनुमति देता है: c d () { code . "$@" }
 – 
chepner
1 नवम्बर 2019, 23:32
इस पुष्टि के लिए धन्यवाद कि शॉर्टकट मौजूद नहीं है। वास्तव में यहीं मेरा मुख्य उद्देश्य था। एक संभावित उपयोगी परिदृश्य: एक टीम भंडार में बनाए गए उपनामों के साझा सेट का उपयोग करती है। कुछ टाइपिस्ट दृढ़ता से सी पसंद करते हैं, अन्य ई। वास्तविक जीवन का विस्तार अपने आप में मेरे प्रश्न के चित्रण से अधिक लंबा और अधिक जटिल है और इसे साझा फ़ाइल के भीतर एक से अधिक स्थानों पर बनाए रखना सुरुचिपूर्ण और त्रुटि की संभावना है। यह कार्यों के बारे में एक अच्छी बात है।
 – 
Trevor Reid
1 नवम्बर 2019, 23:45
1
मुझे पता चला है कि उपनाम (और सामान्य रूप से खोल अनुकूलन) इतने व्यक्तिगत हैं कि उन्हें साझा करने की कोशिश करना शायद ही कभी लायक है।
 – 
Benjamin W.
1 नवम्बर 2019, 23:46
हाँ, प्रस्तावित उपयोग के संबंध में: a साझा फ़ंक्शन को परिभाषित करें जो आवश्यक कार्यक्षमता प्रदान करता है, और अलग-अलग उपयोगकर्ताओं को इसे (यदि बिल्कुल भी) जो कुछ भी वे चाहते हैं उसे उर्फ ​​करने दें।
 – 
chepner
1 नवम्बर 2019, 23:48

2 जवाब

सबसे बढ़िया उत्तर
alias {c,e}="code ."

...विल, ब्रेस विस्तार के बाद, बन जाएगा:

alias c="code ." e="code ."

... जो आप चाहते हैं वह करता है।


उस ने कहा, मुझे विश्वास नहीं है कि यह प्रश्न यहां विषय पर है; उपनाम एक संवादात्मक सुविधा है जो डिफ़ॉल्ट रूप से स्क्रिप्ट में उपलब्ध नहीं होती है, और स्टैक ओवरफ़्लो विशेष रूप से सॉफ़्टवेयर विकास के दायरे में आता है। स्क्रिप्ट लिखना निश्चित रूप से मायने रखता है; अपने कमांड-लाइन शेल का उपयोग करके, इतना नहीं।

6
Charles Duffy 1 नवम्बर 2019, 23:43
डफी। सबसे पहले, बहुत धन्यवाद। :) दूसरा, जैसा कि सामयिकता उपनामों को .bash_profile (या समकक्ष) में परिभाषित किया गया है, जो कि टैग विवरण के अनुसार, एक शेल script है, जिसे बैश उपयोगकर्ता द्वारा निष्पादित किया जाता है। लॉग ऑन करता है।
 – 
Trevor Reid
1 नवम्बर 2019, 23:52
@TrevorReid, मैं इसे कॉन्फ़िगरेशन फ़ाइल कहूंगा, भले ही इसकी सामग्री कोड हो। जो लोग सॉफ़्टवेयर डेवलपमेंट में या उस पर काम नहीं कर रहे हैं, वे हर समय .bash_profile सामग्री को संशोधित करते हैं, जबकि stackoverflow.com/help/on -विषय निर्दिष्ट करता है कि विषय पर होने के लिए गतिविधि "सॉफ़्टवेयर विकास के लिए अद्वितीय" होनी चाहिए। लेकिन फिर, मेरा वर्तमान में अब तक का एकमात्र करीबी वोट है, इसलिए स्पष्ट रूप से उस स्थिति को व्यापक रूप से साझा नहीं किया गया है।
 – 
Charles Duffy
2 नवम्बर 2019, 00:23

जबकि मैं स्वीकृत उत्तर को पसंद करता हूं, विस्तार को दोहराने के बजाय दूसरे (तीसरे..n) उपनाम (एस) को पहले में विस्तारित करना एक व्यावहारिक विकल्प है।

alias c="code ."
alias e=c
0
Trevor Reid 2 नवम्बर 2019, 00:13