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

python - シェル スクリプトは、間にシェルを変更します

最初のシェル スクリプトは #!/bin/sh を示し、数行後には #!/usr/bin/env python を示します。

このスクリプトに実行権限が与えられ、./script.sh として実行されると、スクリプトは正常に動作し、最初の部分で /bin/sh を使用し、後半で Python インタープリターを使用します。

しかし、スクリプトを sh script.sh として実行すると、2 番目のシバンが認識されず、スクリプトが失敗します。とにかく、スクリプトがsh script.shとして明示的に実行されている場合、インタープリターを強制的に変更できますか.

これが必要な理由は、sh script.sh として実行されるツールを使用してスクリプトを実行する必要があるためです。

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

python - doxygen とのシバンの競合

doxygen は、シバンを含む python スクリプトで正しく動作しませんか?

会社のツールディレクトリにシバンを使用して1つのpythonスクリプトを試し、doxygenを実行しました。名前空間 (関数) をまったく表示できませんでした。

同じような経験に直面した場合は、共有してください。

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

javascript - Backbone.js でハッシュ URL と非ハッシュ URL を組み合わせる

Backbone.js アプリケーションでハッシュ URLと非ハッシュURLを組み合わせる方法はありますか?

設定しBackbone.history.start({pushState: true})ました。ユーザーが何らかのリンクをクリックすると、サーバーから JSON データをフェッチし、ページを更新Backbone.history.navigateし、ブラウザーの URL を変更する呼び出しを呼び出します (たとえば、からexample.com/zlinsky/kampan/mf/example.com/moravskoslezsky/kampan/mf/)。
ユーザーがブラウザーから URL をコピーして 2 番目のタブで開くと、同じページが表示されます (この方法で更新されたすべてのページには、サーバー上に対応するページがあります)。これはまさに私が欲しいものです。

しかし、今私は問題を抱えています...

私も<select>ページにいくつかあります。ユーザーがそれらの値を変更すると、ページに動的な変更を加えます (サーバーから JSON をフェッチせずに、更新はクライアント側でのみ行われます)。<select>に従って URLを変更したいと思いますexample.com/moravskoslezsky/kampan/mf/#state1

Backbone.js でそれを行う方法を見つけることができませんでした。に設定pushState: trueした場合Backbone.historyRouterハッシュタグを無視します。
を設定pushState: falseすると、上記の最初の段落で説明したように URL を設定できません。

ヒントをありがとう。

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

python - Pythonライブラリモジュールは#!/ usr / bin / env pythonで始まる必要がありますか?

PythonライブラリモジュールはPythonで開始する必要があります#!/usr/bin/envか?

*.pyinの最初の行/usr/share/pyshared(PythonライブラリがDebianに保存されている場所)を見ると、hashbang行で始まるファイルとそうでないファイルの両方があることがわかります。

この行を含めるまたは省略する理由はありますか?

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

.htaccess - URLでシバンを許可するように.htaccessを設定する方法

私が取り組んでいるプロジェクトはpushStateを使用していますが、Internet Explorerが正しく処理できないため、URLの変更にシバンが使用されています。URLでシバンを許可するように.htaccessを設定することはできますが、それを削除してリダイレクトします。今のところ、http://www.mydomain.com/# !/ whatever.phpにアクセスすると、インデックスページが表示されます。しかし、私がやりたいのは、 http://www.mydomain.com/#!/ whatever.phpにアクセスして、 http ://www.mydomain.com/whatever.phpにリダイレクトすることです

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

binaryfiles - シバンでバイナリファイルを実行する

ディレクトリのパスを入力として受け取り、そのディレクトリのアーカイブを作成し(単一のファイルに変換し)、そのファイルにシェバンを追加する(ファイルの内容を簡単に抽出できるようにする)簡単なプログラムを作成しました。 、指定したパスのベースディレクトリにファイルを書き込みます。

問題は、ファイルをダブルクリックしてもファイル自体が抽出されないことです。代わりに、オペレーティングシステム(私はUbuntu 11.10を使用しています)はgeditでそれを開こうとします。これは明らかに、シェバン、ランダムなジブリッシュ、およびアーカイブされたファイルの内容を示しています。

chmod +x最初に;を使用してファイルを実行可能にしました。それでもうまくいかなかったとき、私は試しchmod 777ました。ただし、ダブルクリックすると、shebangを使用してファイルを実行することはできません。おそらくこれは、純粋なテキストファイルではないためです。

興味深いことに、コマンドラインから直接ファイルを実行しようとすると、シェバンが読み取られ、アーカイブの内容が適切に抽出されます。したがって、私のファイル形式には何の問題もありません。ファイルをダブルクリックしたときのオペレーティングシステムの動作についてはよくわかりませんが、理解したいと思います。

コマンドラインから手動で実行する必要がある場合は、ファイルにシバンを追加しても意味がありません。利点の1つは、プログラムを開くためにプログラムを指定する必要がないことですが、それはほとんど利点ではないと思います。どんな助けでも大歓迎です。

アップデート1:

アーカイブを作成するプログラムはopmと呼ばれます。次のコマンドを使用して、ノードパッケージマネージャーからインストールできます。

その後、opmを使用してディレクトリをパックおよびアンパックします。たとえばtest、ホームディレクトリに呼び出されたディレクトリがある場合、ターミナルを開き、次のコマンドを実行してパックすることができます。

test.packこれにより、ホームディレクトリで呼び出されるディレクトリのアーカイブが作成されます。.packファイルにはshebangがあります#!/usr/bin/opm.pack拡張子がopmのファイルを開くと、そのファイルはアーカイブであり、opmは同じディレクトリに解凍します。

注:既存のディレクトリーtest.packを上書きしたくない場合は、ファイルの名前を変更してください。test

.packファイルを開いたときにそれ自体が抽出されるように、ファイルにshebangを追加しました。しかし、それはうまくいかないようです。それでも、次のコマンドのいずれかを実行すると、機能します。

私のソースコードをチェックして、必要に応じてプログラムに変更を加えることができます。

アップデート2:

了解しました。opm用に次の.desktopファイルを作成し、ディレクトリに保存しました。$HOME/.local/share/applications/

これで、ファイルを右クリックしてウィンドウ、タブに移動し、デフォルトのアプリケーションとして設定することで、.packファイルをopmに関連付けることができました。これで、ファイルを開くだけでファイルを解凍できます。.packPropertiesOpen Withopm.desktop.pack

.packただし、ファイルをmimeタイプに関連付ける方法を知りたいapplication/opmです。現在、.packファイルはに関連付けられていapplication/x-java-pack200ます。どうすればいいですか?別の拡張子(例.opm)を使用した方が良いですか?パックされたアーカイブをmimeタイプに関連付けることによりapplication/opm、OSは、デフォルトのアプリケーションを明示的に設定しなくても、デフォルトでopmProperties > Open Withを使用してアーカイブを開きます。

0 投票する
7 に答える
554661 参照

bash - 推奨されるBashシバンは何ですか?

Bashほとんどの用途で他のものより客観的に優れているシバンはありますか?

  • #!/usr/bin/env bash
  • #!/bin/bash
  • #!/bin/sh
  • #!/bin/sh -

ずっと前に、最後にダッシュを追加すると、誰かがスクリプトにコマンドを渡すのを防ぐと聞いたのをぼんやりと思い出しますが、その詳細は見つかりません。