web-dev-qa-db-ja.com

シバンの後のアットマーク?

Apache httpdプロジェクトの "support/apxs.in"スクリプト では、@記号で囲まれたテキストが#!の後に続きます。つまり、スクリプトの最初の行は次のとおりです。

#!@perlbin@ -w

これはPerlのものですか、UNIXカーネルのものですか?つまり、path/to/script/script_name.in?を使用してこのスクリプトを実行することは可能です。

そうでない場合、#!でスクリプトを開始する理由は何ですか?

26
Utku

これは、configureスクリプトによって入力されるGNU Automakeテンプレートのプレースホルダーのように見えます。したがって、これはPerlカーネルでもUnixカーネルでもありませんが、GNU autotoolsのものです。

おそらく、ソースディストリビューションのファイルからのものであり、make installまたはパッケージマネージャを介してシステムにインストールされたファイルからのものではありません。

または、perlbinを適切に定義していないGNU autotoolsを使用した壊れたビルドからのものです。

ファイルに.inサフィックスがあることは、configureによって処理されることになっていることを確認します。

いいえ、このファイルをそのまま実行することはできません。 Perlを実行すると、プレースホルダーはconfigure実行可能ファイルへの適切なパスに置き換えられます。

47
Kusalananda