2013-02-15 20 views
6

組み込みbash関数のソースを見つけるには?bash組み込み関数bashソースコード

私はそれが関数であることを知っている:

$type -t MY_APP 
function 

私はそれがコードです参照してください。

type MY_APP 
code 

質問は次のとおりです。それが保存されている

  1. どうすれば変更できますか?

答えて

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

それが動作します!私はdeclare -F my_functionを試しましたが、デバッグ機能を持たない関数名しか表示しません。良いアドバイスをありがとう。 – idobr

+0

+1私は 'extdebug'を一度も使用したことがないので、関数がソースとなったファイルを見る方法がないことは分かりませんでした。非常に素晴らしい。 – chepner

+0

これは素晴らしいです! –

0

機能は、一般的に(また、単に/etc/bashrcいくつかのシステム上のように存在するか/etc/bash.bashrcで、).bashrcファイルに格納されています。 SuperUserのThis answerには.bashrcファイルの詳細がいくつかあります。同様に、エイリアスのthis questionは、エイリアス&のLinuxサイトの詳細をエイリアスにするとき、スクリプトを作成するとき、そしていつ関数を書き込むべきときに細かいことが起きるかを説明します。

+0

リンクされたトピックは面白いです。 .bashrcと.bashprofileを検索したところ、定義された関数は別の場所にありました。 @dogbaneの答えは私を助けました。 – idobr