1

bashスクリプトの一部をシェルに移植fishしていますが、ユーティリティ機能にアクセスできません。

バッシュ

これがbashでの方法です。最初にメソッドを宣言します"$HOME/.my-posixrc"

function configure_date_utilities() {
    function today() {
        to-lower "$(date '+%Y-%b-%d')"
    }
    function today-num() {
        to-lower "$(date '+%Y-%m-%d')"
    }
    function now() {
        to-lower "$(date '+%Y-%b-%d-%H:%M')"
    }
}

次に、このファイルをソースします。

source "$HOME/.my-posixrc"

だから私はできる:

$ today

2015-12-13

function configure_date_utilities
    function today
        to-lower (date '+%Y-%b-%d')
    end
    function today-num
        to-lower (date '+%Y-%m-%d')
    end
    function now
        to-lower (date '+%Y-%b-%d-%H:%M')
    end
end

次に、このファイルを次の場所にソースします~/.config/fish/config.fish

source "$HOME/.my-posixrc"

しかし、メソッドが見つかりません:

$ today

プログラム「今日」は現在インストールされていません。次のように入力してインストールできます:sudo apt-get install mhc-utils

質問

プロンプトで関数にアクセスできるように関数を「エクスポート」するにはどうすればよいですか?

PS: 私のドットファイルは github で入手できます

4

1 に答える 1

2

外側の関数を削除するか、ファイルで呼び出します。

fish では、すべての関数はグローバルですが、定義が実行されないため、内部関数は定義されません。

したがって、次のいずれかです。

function configure_date_utilities
    function today
        to-lower (date '+%Y-%b-%d')
    end
    function today-num
        to-lower (date '+%Y-%m-%d')
    end
    function now
        to-lower (date '+%Y-%b-%d-%H:%M')
    end
end
configure_date_utilities

また

function today
    to-lower (date '+%Y-%b-%d')
end
function today-num
    to-lower (date '+%Y-%m-%d')
end
function now
    to-lower (date '+%Y-%b-%d-%H:%M')
end
于 2015-12-13T12:20:19.610 に答える