Linuxシェルスクリプトでソースコードを上書きする方法は?

Linuxシェルスクリプトでソースコードを上書きする方法は?

私たちのチームはシェルスクリプトを共有しており、Windowsでのみ使用しているので、これをCygwinと互換性があります。今問題はで発生しますsource。私のシェルは次の形式のみを受け入れます。

source ./<file name>

変える

source <file name>

これはすでにスクリプトにあります。だから私はsource次のように書き直したい。

source(){ . ./$@; }

しかし、今私のシェルは文句を言います。

`source': is a special builtin

今どうすればいいですか?

ベストアンサー1

特別な組み込み機能に関するエラーメッセージ(参照)http://sources.debian.net/src/bash/4.4-4/execute_cmd.c/?hl=5623#L5623)、POSIXモードでbashを実行しているようです。これは$POSIXLY_CORRECTシェルを設定して実行したためです。--posixset -o posix

POSIXモードが実行する多くのタスクの1つは、(再定義を許可しないことに加えて)source-lookupが失敗した場合に現在の作業ディレクトリを検索しないことですsource.$PATH

これはCygwinで実行するものとは何の関係もありません。

おすすめ記事