Linuxスクリプトでそれはどういう意味ですか?#!/ usr / bin / python -tt

Abzac:

.sh bashスクリプトの最初は

#!/bin/bash

これは、コマンドインターピーターの実行可能ファイルを指します。

しかし、Google Python Class http://www.youtube.com/watch?v=tKTZoB2Vjukを見ていたときに、Pythonでは

#!/usr/bin/python -tt

インターネットをサーフィンする私もこの表記のそのようなスタイルを見つけました:

#!/usr/local/bin/python

そして

#!/usr/bin/env python

それで、私はPythonが初めてで、普通のLinuxユーザーであり、この「魔法」の行についていくつか質問があります。

  1. まず、この線の正しい形は何ですか?なぜ?
  2. #!/ usr / bin / python -ttで-ttキーは何を意味しますか?
  3. Linuxでこの行を解析しているプログラムは何ですか?
  4. スクリプトのこの行の構文は何ですか?
  5. 各ファイルに拡張子がある場合、なぜこの行が必要なのですか?
  6. また、スクリプトごとに別の場所とは別の場所に格納されるため、各コンピューターインタープリターではどうでしょうか。そして、スクリプトを実行できませんでした。

本当に面白いです。この線は何ですか?なぜこの線なのか?この行の書き方は?なぜそのように?...

マークB:

質問1)ラインはシバンと呼ばれ、普遍的に機能する正しい形式はありません。例えば

#!python
#!/usr/bin/python
#!/usr/local/bin/python
#!/usr/bin/python -t

すべて有効/許容可能な形式ですが、システムによっては機能しない場合があります。

#!python Python実行可能ファイルがシェルのPATHのどこかにある場合にのみ機能します

#!/usr/bin/python Pythonバイナリが実際に/ usr / binにある場合にのみ機能します

#!/usr/local/bin/python また、pythonが/ usr / local / binにある場合にのみ機能します

質問2)

#!/usr/bin/python -tt-ttあなたがしたかのように、Pythonにオプションを渡しています:

$ python -t somescript.py

シェルプロンプトで。シバン行のインタープリターに任意のコマンド行引数を渡すことができます。

質問3)

この行は、現在使用しているOSカーネルとシェルによって解釈されます。の後の#!部分は、スクリプトの残りの部分を「実行」するために起動する必要があるプログラムをOSに通知するだけです。

質問#4)

スクリプトの構文は、使用している言語によって異なります。たとえば、PHPシェルスクリプトは、

#!/usr/bin/php
<?php
  ... php code here ...

#!/usr/bin/perlperlのスクリプトでは、PerlのシェバングでPHPコードを入れる場合はPHPのコードがあるとして、あなただけのPerlは、構文エラーでスクリプトを嘔吐しているよ...等、Perlの構文を使用する必要がありませ perlのコード

質問5)

シバンはUnixシステム用であり、ファイル拡張子を使用してOSがファイルタイプを識別することはありませんでした。.cファイルは、C言語のソースコードファイルであることを理解し、それは単に慣例だました。Bashシェルスクリプトを.cファイルに入れて実行可能にし、#!/bin/bashシバンを使用すると、Bashスクリプトとして実行されます。

ファイル拡張子によって実行可能タイプを決定することは、Windowsのものです。

質問6)

これは問題1に関連しています。シバンがインタープリターが現在のパスとは別のパスにあると主張している場合、シバンが修正されるか、インタープリターが移動されるまで、この特定のスクリプトは実行できません。シバンは非常に便利ですが、間違いありません。

ありがたいことに、最近ではほとんどのインタープリターがかなり標準的な場所にインストールされているので、Perlが(たとえば)の/some/wonky/weird/path代わりにインストールされているのを見つけるのは少し珍しいでしょう。/usr/bin

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

このフラスコエラーはどういう意味ですか?/ usr / local / bin / flask:不正なインタプリタ:/usr/local/opt/python/bin/python2.7:そのようなファイルまたはディレクトリはありません

分類Dev

AutomatorでPythonスクリプトを実行する// export PATH = / usr / local / bin:$ PATHを含めた場合にのみ機能するのはなぜですか?それはどういう意味ですか?

分類Dev

bashスクリプトで["x / usr / bin"!= "x"]の場合はどういう意味ですか?

分類Dev

最初の行に `#!/ usr / bin / env python`が含まれている場合、スクリプトがpythonを見つけられない原因は何でしょうか。

分類Dev

/ usr / bin / pythonと/ usr / local / bin / python

分類Dev

bashに無効なコマンドを入力したときに「/ usr / bin / python:そのようなファイルまたはディレクトリはありません」を修正するにはどうすればよいですか?

分類Dev

/ bin、/ sbin、/ usr / bin、/ usr / sbin、/ usr / local / bin、/ usr / local / sbinの違い

分類Dev

/ bin、/ sbin、/ usr / bin、/ usr / sbin、/ usr / local / bin、/ usr / local / sbinの違い

分類Dev

/ usr / local / bin /のpythonを削除する方法

分類Dev

なぜ '#!/ usr / bin / env python'は単に '#!/ usr / bin / python'よりも正しいと思われるのですか?

分類Dev

Linuxでの/ usr / binと/ usr / local / bin

分類Dev

/ usr / bin / python3を削除した後、元に戻すにはどうすればよいですか?

分類Dev

LinuxのPythonで#!/ usr / bin / pythonという行が必要なのはなぜですか?

分類Dev

LinuxのPythonで#!/ usr / bin / pythonという行が必要なのはなぜですか?

分類Dev

-bash:/ usr / bin / yum:/ usr / bin / python:不正なインタプリタ:そのようなファイルまたはディレクトリはありません

分類Dev

/ binと/ usr / binの違い

分類Dev

/ usr / bin /または〜/ bin / priority

分類Dev

/ usr / binと/ usr / local / binの違い

分類Dev

/ usr / libまたは/ opt From / usr / binにリンクするにはどうすればよいですか?

分類Dev

#!/ usr / bin / python3の目的

分類Dev

#!/ usr / bin / python3の目的

分類Dev

'/ usr / bin / envpython'のデフォルトはpython3です

分類Dev

'/ usr / bin / envpython'のデフォルトはpython3です

分類Dev

$ PATHをエコーすると、/ usr / local / bin:/ usr / bin:/ bin:/ usr / sbin:/ sbin:/ bin:/ bin:/ bin:/ bin:/ bin:になります。

分類Dev

複数のファイルを含むPythonプログラムを/ usr / local / binに配置するにはどうすればよいですか?

分類Dev

/ usr / bin / pythonの代わりにanacondapythonインストールを使用するようにルートプロセスに指示するにはどうすればよいですか?

分類Dev

Pythonの/ usr / binにリンクを作成しますか?

分類Dev

#!/usr/bin/python の行は何をしていますか?

分類Dev

「#!/ usr / bin / env bash」と「#!/ usr / bin / bash」の違いは何ですか?

Related 関連記事

  1. 1

    このフラスコエラーはどういう意味ですか?/ usr / local / bin / flask:不正なインタプリタ:/usr/local/opt/python/bin/python2.7:そのようなファイルまたはディレクトリはありません

  2. 2

    AutomatorでPythonスクリプトを実行する// export PATH = / usr / local / bin:$ PATHを含めた場合にのみ機能するのはなぜですか?それはどういう意味ですか?

  3. 3

    bashスクリプトで["x / usr / bin"!= "x"]の場合はどういう意味ですか?

  4. 4

    最初の行に `#!/ usr / bin / env python`が含まれている場合、スクリプトがpythonを見つけられない原因は何でしょうか。

  5. 5

    / usr / bin / pythonと/ usr / local / bin / python

  6. 6

    bashに無効なコマンドを入力したときに「/ usr / bin / python:そのようなファイルまたはディレクトリはありません」を修正するにはどうすればよいですか?

  7. 7

    / bin、/ sbin、/ usr / bin、/ usr / sbin、/ usr / local / bin、/ usr / local / sbinの違い

  8. 8

    / bin、/ sbin、/ usr / bin、/ usr / sbin、/ usr / local / bin、/ usr / local / sbinの違い

  9. 9

    / usr / local / bin /のpythonを削除する方法

  10. 10

    なぜ '#!/ usr / bin / env python'は単に '#!/ usr / bin / python'よりも正しいと思われるのですか?

  11. 11

    Linuxでの/ usr / binと/ usr / local / bin

  12. 12

    / usr / bin / python3を削除した後、元に戻すにはどうすればよいですか?

  13. 13

    LinuxのPythonで#!/ usr / bin / pythonという行が必要なのはなぜですか?

  14. 14

    LinuxのPythonで#!/ usr / bin / pythonという行が必要なのはなぜですか?

  15. 15

    -bash:/ usr / bin / yum:/ usr / bin / python:不正なインタプリタ:そのようなファイルまたはディレクトリはありません

  16. 16

    / binと/ usr / binの違い

  17. 17

    / usr / bin /または〜/ bin / priority

  18. 18

    / usr / binと/ usr / local / binの違い

  19. 19

    / usr / libまたは/ opt From / usr / binにリンクするにはどうすればよいですか?

  20. 20

    #!/ usr / bin / python3の目的

  21. 21

    #!/ usr / bin / python3の目的

  22. 22

    '/ usr / bin / envpython'のデフォルトはpython3です

  23. 23

    '/ usr / bin / envpython'のデフォルトはpython3です

  24. 24

    $ PATHをエコーすると、/ usr / local / bin:/ usr / bin:/ bin:/ usr / sbin:/ sbin:/ bin:/ bin:/ bin:/ bin:/ bin:になります。

  25. 25

    複数のファイルを含むPythonプログラムを/ usr / local / binに配置するにはどうすればよいですか?

  26. 26

    / usr / bin / pythonの代わりにanacondapythonインストールを使用するようにルートプロセスに指示するにはどうすればよいですか?

  27. 27

    Pythonの/ usr / binにリンクを作成しますか?

  28. 28

    #!/usr/bin/python の行は何をしていますか?

  29. 29

    「#!/ usr / bin / env bash」と「#!/ usr / bin / bash」の違いは何ですか?

ホットタグ

アーカイブ