8

GNU makefile内でbash関数を呼び出すことができるという印象がありますが、間違っているようです。これが簡単なテストです。この関数を定義しました。

>type lsc
lsc is a function
lsc () 
{ 
    ls --color=auto --color=tty
}

これが私のMakefileです:

>cat Makefile
all:
    lsc

これが私がmakeを実行することで得られるものです:

>make
lsc
make: lsc: Command not found
make: *** [all] Error 127

私の印象は間違っていますか?または、環境設定の問題はありますか?コマンドラインで「lsc」を実行できます。

4

6 に答える 6

7

Makefile では bash 関数やエイリアスを呼び出すことはできません。バイナリとスクリプトのみを呼び出すことができます。ただし、できることは、インタラクティブな bash を呼び出して、関数またはエイリアスを呼び出すように指示することです。

all:
    bash -i -c lsc

たとえば、 でlsc定義されている場合。.bashrc

于 2012-10-29T23:04:00.160 に答える
2

「export -f」で関数をエクスポートしましたか?

Makefile のシェルは bash ですか、それとも sh ですか?

于 2012-10-29T00:41:35.227 に答える