2

シェルコンソールでカスタムbash関数を実行する場合:

~/w/dotfiles/ruby [g:master-] ¶ repository_root
/Users/tian/Documents/workspace/dotfiles

また、IRBでカスタムbash関数を実行すると、次のようになります。

irb(main):001:0> `repository_root`
(irb):1: command not found: repository_root
=> ""

IRBで同じ結果を得るにはどうすればよいですか?

# declare
repository_root () {
    if git_is_repository ; then
        git_show_repository_root
    fi
}
4

3 に答える 3

2

関数が bash プロファイル ファイルの 1 つにあると仮定すると、対話型 ( -i) ログイン ( -l) シェルを起動し-cて関数を実行 ( ) します。

output = %x{bash -lic 'repository_root'}
于 2012-10-06T19:03:31.960 に答える
1

これを行う 1 つの方法は、関数からコマンドを作成することです。

ここに短い方法があります

  1. 関数を呼び出すシェル スクリプト ファイルを作成します。
  2. .binにディレクトリを作成し、HOMEに追加$PATHします.bash_rc
  3. シェル スクリプト ファイルを に配置します.bin
  4. source .bash_rc$PATH変更したばかりの変数を更新します。
  5. ファイルに名前を付けたと仮定するとfnx、バックティック演算子を使用するかexec、コマンドを実行します-exec("fnx")
于 2012-10-06T13:34:00.993 に答える
0

どこでrepository_root宣言されていますか?

.bash_profile? .bashrc?

使用する前にそのファイルを入手してみてくださいrepository_root

`. /path/to/file/declaring/repository_root; repository_root`
于 2012-10-06T12:56:46.717 に答える