問題タブ [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 に答える
168 参照

python - 同一のシバンが機能しない

そのため、実行するたびにインタープリターを手動で指定せずに実行したいスクリプトをいくつか作成しようとしています。

上記は、私が望むように実行される既存のスクリプトのシバンです。

以下は、私が最初から書いたスクリプトのシバンです

私にはそれらは同じように見えますが、2番目のものを実行すると

どちらも、kate、utf-8、および unix ラインを使用して作成されています。どちらも私と同じです。

何か案は?

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

python - UnixでのPythonインストールの命名とシバンの適切な使用

Pythonスクリプトのシバンを書くための標準的な方法について混乱しています。

私はプレーンな「python」リンクを持っていますが、これはシステムに応じてPython2.xまたはPython3.xのいずれかになる可能性があり、両方に互換性がないため問題になります。

解決策として、私は自分のシバンでバージョンを書き、次のようなものを持っています:

しかし、他の3.xリリースでスクリプトを実行できなくなるため、これはばかげているようです。

一部のシステムでは、python2が最新リリースにリンクされていることに気づきました。そうすれば、リリースごとに壊れない「HelloWorld」のような簡単なスクリプトを書くことができるので、それは役に立ちます。

Python 2.6、2.7、3.1、3.2をインストールしました。シバンに「python」だけを使用しても、移植性の観点からは意味がありません。正確なバージョンを使用すると、保守性が低下します。python2リンクはありますが、python3はありません

Pythonのインストール方法を指定する標準および/またはPEPはありますか?そして、私がデプロイすることを言うものは、最新のリリースにリンクされたpython3および/またはpython2を持っている必要がありますか?

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

php - BitnamiPHPはシバンから評価されません

コマンドラインからPHPスクリプトを実行しようとしています。Bitnamiのphpインタープリターを使用して実行すると、問題なく動作します。たとえば、私はスクリプトを持っていますtest_php、そしてその内容は

シェルで実行すると、正常に動作/Applications/drupal/php/bin/php test_phpします。

しかし、実行するtest_phpと、次のようになります。

これは、BitnamiのPHPの場所でのみ発生します。shebangは、OSXに同梱されているバージョンで正常に動作します。

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

shell - 不明なパスのシェルスクリプトシバン

実行したいプログラムのパスがわからなくても、シバンラインを指定することはできますか?

たぶんパスを指定しないでください

またはいくつかのオプションを指定します

クロスプラットフォームソリューションの追加ポイント(Linux、BSD、OSXなどのさまざまなフレーバー...)

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

python - さまざまなバージョンの Python の条件付きシバン行

2 台の異なるコンピューターで Python スクリプトを実行しようとすると問題が発生します。各コンピューターで python バージョン 2.7.3 を使用してスクリプトを実行したいのですが、問題は、2 台のコンピューターが異なる方法で python 2.7.3 を指定していることです。コンピューターの 1 つは arch linux を実行しており、このコンピューターでは python2 という名前が付けられています。もう一方のコンピューターは redhat linux を実行しており、python2.7.3 という名前を使用しています。

スクリプトを変更せずに両方のコンピューターで実行できるようにするには、シバン行で何を使用すればよいですか? 私が本当に欲しいのは、使用する Python のバージョンを選択できる、ある種の条件付きシバン行です。運が悪かっただけで、スクリプトの 2 つの異なるバージョンを保持する必要がありますか?

PS #!/usr/bin/env python だけを使用することはできません。これは、arch linux コンピューターでは python 3.2.3 を参照し、redhat linux コンピューターでは python 2.4 を参照するためです。

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

shell - シバンが異なるシェルを参照するときの奇妙なスクリプトの動作

最近、ksh93 シェルに切り替えました。これを行うには、次の 2 行を .profile ファイルに追加しました。

私がそれを行って以来、いくつかの単純なスクリプトが、私が理解できない方法で誤動作し始めました。say と呼ばれる次の単純なスクリプトに絞り込みましたtest.sh

コマンドtest.sh fredを入力すると、同じ出力が表示されるはずtest.sh fredです。代わりに私は見るtest.sh noglob。シバンを削除するか、読み取りに変更すると#!/usr/local/bin/ksh93、スクリプトは期待どおりに機能します。

何が起こっているのか、またはそれに対して何をすべきかを誰か説明できますか? 私は困惑しています。

違いがある場合は、Solaris 5.9 を使用しています。

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

python - Pythonシバンと改行

LinuxとbashでPythonスクリプトを実行可能にするには、シバンを使用します

スクリプトの最初の行として。この行がたまたまUnixスタイルの改行ではなくWindowsスタイルの改行\r\ n(キャリッジリターン-ラインフィード)で終わっている場合、bashはPythonインタープリターを介してスクリプトを実行できません。

Pythonでクロスプラットフォーム開発を行っています。私がWindowsで作業しているとき、自然な改行は\ r\nです。Linuxで作業している場合、自然な改行は\nです。バージョン管理にMercurialを使用しているとすると、シバンを含むスクリプトファイルで\n改行の使用を強制するための最良の方法は何でしょうか。

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

windows - Windows 上の tcsh: hashbang ファイルのサポート

Windowsでtcshのビルド前のバイナリexeを使用しています。

私はいくつかのclojureスクリプトを書こうとしています。このような:

まず、tcsh で直接実行してみます。

運が悪い:「このファイルを開くには正しいプログラムを選択してください」ウィンドウが表示されますが、実行されません。

+x mod を追加しようとしています:

まだ同じ :(

質問は:

  • Windows 上の tcsh のビルド前のバージョンは hashbang をサポートしていますか?
  • もしそうなら、ハッシュバンでファイルを実行させる方法は?

多くのThx :-)

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

perl - シバン行が常に最初の行になるのはなぜですか?

以下のような単純な perl スクリプトがあります。

このスクリプトを次のように実行できます。

次のようなコメントを追加すると:

実行しようとすると、次のような出力が得られます。

ここでのポイントは、何があっても、シバン ラインは常に一番上にある必要があるということです。誰でも理由を説明できますか?

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

c - シェルで C プログラムを実行するときに相対パスを完全パスに展開する

スクリプトが C 実行可能ファイルと通信する必要があるときに問題が発生します。ロードして別のプロセスに送信する必要があるスクリプトのフル パスを取得できません。

スクリプトの名前はmyScript

これはC実行可能ファイルのソースコードです

myScriptターミナルから実行すると、

  • argv[0]実行可能ファイルのパスを示しています(これは の情報だからだと思います#!)。
  • argv[1]実行可能ファイルに渡される最初の引数を示します。
    • 引数として使用する./myScriptと、それが表示されます(相対パス)
    • 引数として使用する/home/user/git/proyect/test/scriptFolder/myScriptと、絶対パスが表示されます(これが必要ですが、毎回ターミナルにフルパスを書きたくありません)

myScriptだから私の質問は、スクリプトを呼び出すときにフルパスを渡さずにフルパスを取得するにはどうすればよいですか?