問題タブ [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.
shell - シバンとグルーヴィー
Groovy スクリプトとして実行する必要があることをファイルの先頭で宣言することは可能ですか?
他のスクリプト言語の例:
python - ハードパスではなく/usr/bin/envを使用したpythonシバンの違いは何ですか?
シバン使ってた
いつ使うのがよいか
それらの正確な違いは何ですか?
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__
インタプリタ全体で(シバンフラグを使用せずに)変数 を設定するための他の回避策も興味深いでしょう。
python - 記号「#!」は何ですか Pythonで意味しますか?
このコード行はどういう意味ですか?これがないと、私のpython3 httpサーバーは理解できず、ブラウザーに空の.pyファイルをダウンロードさせることができません(.pyファイルへのリンクによって異なります)
python - 適切なPythonバージョンでPythonプログラムを起動する方法は?
一連のPythonプログラムが与えられた場合:
共有ネットワークディレクトリに保存され、混合環境(Solarisおよびさまざまな種類のLinux)で実行され、ユーザーの$ PATHに含まれておらず、同じ場所にインストールされていない可能性のある特定のPythonバージョンが必要です。さまざまな種類のマシン。
プログラムはどのPythonインタープリターを使用するかをどのように指定できますか?
私が検討した代替案:
現在のタイプのマシンに適切なPythonインタープリターを起動するPythonラッパーを参照する各Pythonプログラムのシバン。ただし、execveでは、ラッパー実行可能ファイルをシェルスクリプトとして実装することはできません。また、各マシンのネイティブ実行可能ファイルをコンパイルするには、多くのメンテナンスが必要になります。
Pythonプログラムごとに起動シェルスクリプトを作成します。すべてのシェルスクリプトは、Pythonインタープリターを選択するための同じロジックを共有する場合がありますが、可能であれば、Pythonプログラムごとに個別のシェルスクリプトを使用することは避けたいと思います。
次のように、シェルスクリプトとPythonプログラムの両方として各プログラムを実行できるようにするために、ある種のハックを作成します。
他にアイデアはありますか?
python - Python スクリプト: シェルで実行されますが、モジュールをインポートできないため、実際には失敗します
Python シェルで正常に実行されるスクリプトがありますが、ダブルクリックすると PIL モジュールのインポートに失敗します (ただし、シェルでは PIL モジュールをインポートします)。
なにが問題ですか?別のシバンが必要ですか?私はWindows 7を使用しています:
python - shebangを使用してsubprocess.callでPythonスクリプトを実行する
私はPython3で(ある程度)モジュラーアプリケーションを作成していて、そこから任意のプログラムを実行したいと思っています。このプログラムは実行時に指定され、必ずしもPythonスクリプトではありません。
だから私は例えば、
spam
がPythonスクリプトであり、シバンpython3
と実行可能権限がある場合、次のようになります。
もし私が
それはうまくいきます。
なぜなのかご存知ですか?spam
指定せずに実行するにはどうすればよいpython3
ですか?
ruby-on-rails - 相対シバン線を持つ
Rails アプリを作成しており、スクリプトを実行する必要があります。./script/runner
私が置くことができる間
一番上に、それはもっと似ている必要がある本番環境では機能しません
は私のパスにないので./script
、そうであってほしくないので、どうすればこれを設定できるようにできますか?
Linuxボックスで実行するためにcronジョブを使用しています
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" が失われました。どうしたの?両方を達成するためのベスト プラクティスがあるとすれば、それは何ですか?
windows - Windows コマンド プロンプトでシバン/ハッシュバンを使用する
私は現在、Windows 7でNode.jsを使用してディレクトリを提供するためにserveスクリプトを使用しています。node.exe と serve スクリプトを ~/bin (これは私のPATHで)、そして「serve」と入力するだけで機能します。これは、ノードで実行するようにシェルに指示するShebang()ディレクティブであるためです。sh
#!
ただし、Windows コマンド プロンプトは、*.bat または *.exe 拡張子のない通常のファイルも、shebang ディレクティブもサポートしていないようです。この動作をビルトインから強制的に除外するために取得できるレジストリキーまたはその他のハックはありますcmd.exe
か?
ノードで実行するために単純なバッチファイルを作成するだけでよいことは知っていますが、組み込みの方法で実行できるかどうか疑問に思っていたので、このようなすべてのスクリプトに対してスクリプトを作成する必要はありませんか?
更新:実際には、すべての「ファイルが見つからない」などのデフォルトのハンドラーを作成して、自動的に実行を試みることができると考えていましたsh -c
。
ありがとう。