問題タブ [shebang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
18653 参照

shell - シバンとグルーヴィー

Groovy スクリプトとして実行する必要があることをファイルの先頭で宣言することは可能ですか?

他のスクリプト言語の例:

0 投票する
1 に答える
22554 参照

python - ハードパスではなく/usr/bin/envを使用したpythonシバンの違いは何ですか?

シバン使ってた

いつ使うのがよいか

それらの正確な違いは何ですか?

0 投票する
8 に答える
2546 参照

python - 一部のシステムで認識されないシバンフラグを修正する方法

何らかの理由で、-OアクセスするRed Hat Enterprise Server(リリース5.3)のshebang行で(最適化された)フラグが認識されません。他のシステムでは、フラグは問題なく認識されます。

OSXで以下のスクリプトを実行すると正常に動作します。フラグの認識は、次の条件-Oの下で何かを有効にする(存在しない場合)または無効にする(与えられた場合)ため、検証できます。if __debug__

RHEシステムで同じスクリプトを実行すると、次のようになります。

/ usr / bin / env:python -O:そのようなファイルまたはディレクトリはありません

フラグがない-O場合、スクリプトはRHEシステムで正常に実行されます(つまり、__debug__組み込み変数はに設定されますTrue)。

この問題を修正するためのクロスプラットフォームの方法はありますか?pythonインタープリターへのシバン行のフラグの問題を修正するプラットフォーム固有の方法さえありますか?

編集:__debug__インタプリタ全体で(シバンフラグを使用せずに)変数 を設定するための他の回避策も興味深いでしょう。

0 投票する
5 に答える
7750 参照

python - 記号「#!」は何ですか Pythonで意味しますか?

このコード行はどういう意味ですか?これがないと、私のpython3 httpサーバーは理解できず、ブラウザーに空の.pyファイルをダウンロードさせることができません(.pyファイルへのリンクによって異なります)

0 投票する
4 に答える
2065 参照

python - 適切なPythonバージョンでPythonプログラムを起動する方法は?

一連のPythonプログラムが与えられた場合:

共有ネットワークディレクトリに保存され、混合環境(Solarisおよびさまざまな種類のLinux)で実行され、ユーザーの$ PATHに含まれておらず、同じ場所にインストールされていない可能性のある特定のPythonバージョンが必要です。さまざまな種類のマシン。

プログラムはどのPythonインタープリターを使用するかをどのように指定できますか?

私が検討した代替案:

  1. 現在のタイプのマシンに適切なPythonインタープリターを起動するPythonラッパーを参照する各Pythonプログラムのシバン。ただし、execveでは、ラッパー実行可能ファイルをシェルスクリプトとして実装することはできません。また、各マシンのネイティブ実行可能ファイルをコンパイルするには、多くのメンテナンスが必要になります。

  2. Pythonプログラムごとに起動シェルスクリプトを作成します。すべてのシェルスクリプトは、Pythonインタープリターを選択するための同じロジックを共有する場合がありますが、可能であれば、Pythonプログラムごとに個別のシェルスクリプトを使用することは避けたいと思います。

  3. 次のように、シェルスクリプトとPythonプログラムの両方として各プログラムを実行できるようにするために、ある種のハックを作成します。

他にアイデアはありますか?

0 投票する
4 に答える
2609 参照

python - Python スクリプト: シェルで実行されますが、モジュールをインポートできないため、実際には失敗します

Python シェルで正常に実行されるスクリプトがありますが、ダブルクリックすると PIL モジュールのインポートに失敗します (ただし、シェルでは PIL モジュールをインポートします)。

なにが問題ですか?別のシバンが必要ですか?私はWindows 7を使用しています:

0 投票する
2 に答える
3838 参照

python - shebangを使用してsubprocess.callでPythonスクリプトを実行する

私はPython3で(ある程度)モジュラーアプリケーションを作成していて、そこから任意のプログラムを実行したいと思っています。このプログラムは実行時に指定され、必ずしもPythonスクリプトではありません。

だから私は例えば、

spamがPythonスクリプトであり、シバンpython3と実行可能権限がある場合、次のようになります。

もし私が

それはうまくいきます。

なぜなのかご存知ですか?spam指定せずに実行するにはどうすればよいpython3ですか?

0 投票する
2 に答える
1817 参照

ruby-on-rails - 相対シバン線を持つ

Rails アプリを作成しており、スクリプトを実行する必要があります。./script/runner

私が置くことができる間

一番上に、それはもっと似ている必要がある本番環境では機能しません

は私のパスにないので./script、そうであってほしくないので、どうすればこれを設定できるようにできますか?

Linuxボックスで実行するためにcronジョブを使用しています

0 投票する
4 に答える
1060 参照

command-line - #! /usr/bin/env とプロセス名: 代償を払ってでも移植可能?

#! を使用する正当な 理由はたくさんあります。/usr/bin/env. 結論: コードの移植性が向上します。そうですね。これをチェックしてください....


ほぼ同一のスクリプトが 2 つあり、bintest.py

envtest.py

それらはシバンのみが異なることに注意してください。


bintest.py期待どおりに実行されます

しかし、envtest.py最適とは言えないことをします


私たちが見たのは、を使用#! /usr/bin/envすると、プロセスが「envtest.py」ではなく「python」という名前を受け取るため、killall効果がなくなったことです。あるレベルでは、ある種の移植性を別の移植性と交換したように見えます: Python インタープリターを簡単に交換できるようになりましたが、コマンド ラインでの "kill-ability" が失われました。どうしたの?両方を達成するためのベスト プラクティスがあるとすれば、それは何ですか?

0 投票する
5 に答える
17880 参照

windows - Windows コマンド プロンプトでシバン/ハッシュバンを使用する

私は現在、Windows 7でNode.jsを使用してディレクトリを提供するためにserveスクリプトを使用しています。node.exe と serve スクリプトを ~/bin (これは私のPATHで)、そして「serve」と入力するだけで機能します。これは、ノードで実行するようにシェルに指示するShebang()ディレクティブであるためです。sh#!

ただし、Windows コマンド プロンプトは、*.bat または *.exe 拡張子のない通常のファイルも、shebang ディレクティブもサポートしていないようです。この動作をビルトインから強制的に除外するために取得できるレジストリキーまたはその他のハックはありますcmd.exeか?

ノードで実行するために単純なバッチファイルを作成するだけでよいことは知っていますが、組み込みの方法で実行できるかどうか疑問に思っていたので、このようなすべてのスクリプトに対してスクリプトを作成する必要はありませんか?

更新:実際には、すべての「ファイルが見つからない」などのデフォルトのハンドラーを作成して、自動的に実行を試みることができると考えていましたsh -c

ありがとう。