最近、macports 経由で bash (Mac OS X 10.6.8) を 3.2.48(1) から 4.3.30(1) にアップグレードしましたが、インストールはスムーズに進んだようですが、~/.bashrc の 2 つの場所で予期しexport -f myfunc;
ない結果が発生したようです。 や など、さまざまな場所でman
次more
のエラーが発生します。
/bin/sh: line 6: 'BASH_FUNC_myfunc%%': not a valid identifier
~/.bashrc には、export -f
別のスクリプトがその関数を呼び出すことができるように定義されていた関数が 2 つありました。エラーは ~/.bashrc にある最初の関数を参照しますが、行番号がどこから来るのかはわかりません。2 番目のスクリプトは正常に動作し、フラグを削除するexport
と-f
エラーは解消されますが、スクリプトが関数を呼び出せなくなることは明らかです。
この動作の原因は何ですか? また、bash 4 で関数を適切にエクスポートするにはどうすればよいですか?