2013-02-15 14 views
6

में निर्मित बैश बिल्ट फ़ंक्शन में निर्मित स्रोत का स्रोत कैसे ढूंढें?फ़ैश बैश स्रोत कोड

मुझे पता है कि यह एक समारोह है:

$type -t MY_APP 
function 

मैं देख रहा हूँ यह कोड है:

type MY_APP 
code 

प्रश्न हैं:

  1. यह कहाँ संग्रहीत किया जाता है?
  2. मैं इसे कैसे संशोधित कर सकता हूं?

उत्तर

7

आप इस तरह यह कर सकते हैं:

# Turn on debug 
$ shopt -s extdebug 

# Print out the function's name, line number and file where it was sourced from 
$ declare -F my_function 
my_function 46 /home/dogbane/.bash/.bash_functions 

# Turn off debug 
shopt -u extdebug 

समारोह को संपादित करने के युक्त समारोह परिभाषा फ़ाइल को खोलने (आप ऊपर से पता चला है कि)। फ़ंक्शन संपादित करें और फ़ाइल को सहेजें। फिर अपने खोल में यह स्रोत, इस तरह:

$ . /path/to/function_file 
+0

यह काम करता है! मैंने घोषणा की - मेरा myfunction, लेकिन यह केवल डीबग फ़ंक्शन के बिना फ़ंक्शन नाम प्रिंट करता है। एक अच्छी सलाह के लिए धन्यवाद। – idobr

+0

+1 मैंने कभी 'extdebug' का उपयोग नहीं किया है, इसलिए यह नहीं पता था कि फ़ाइल को देखने के लिए एक तरीका था। बहुत अच्छा। – chepner

+0

यह शानदार है! –

0

कार्य आम तौर पर .bashrc फाइल में जमा हो जाती है (या /etc/bash.bashrc के रूप में भी सिर्फ /etc/bashrc कुछ सिस्टम पर मौजूद है, जिसमें)। SuperUser से This answer में कुछ अच्छी जानकारी है कि .bashrc फ़ाइल क्या है। इसी प्रकार, यूनिक्स & पर this question लिनक्स साइट विवरण जब उपनाम के लिए सबसे अच्छा है, कब स्क्रिप्ट, और फ़ंक्शन लिखना कब होता है।

+0

लिंक किया गया विषय दिलचस्प है। मैंने .bashrc और .bashprofile में खोज की, परिभाषित फ़ंक्शन अन्य जगह पर था। @ डोगबेन के जवाब ने मेरी मदद की। – idobr

संबंधित मुद्दे