アンドロイド

バッシュ・シバン

द�निया के अजीबोगरीब कानून जिन�हें ज

द�निया के अजीबोगरीब कानून जिन�हें ज

目次:

Anonim

この文字シーケンス( #! )はshebangと呼ばれ、ファイルの残りを解析するために使用するインタープリターをオペレーティングシステムに伝えるために使用されます。

シバン通訳指令

Shebangインタープリターディレクティブの形式は次のとおりです。

#!interpreter

  • ディレクティブは、スクリプトの最初の行でなければなりません。ディレクティブは、shebang #! 始まる必要があり #! シバング文字の後の空白はオプションです。インタープリターはバイナリファイルへのフルパスです(例: /bin/sh /bin/bash )。インタープリターの引数はオプションです。

例:

  • #!/bin/bash - bash を使用してファイルを解析します。 #!/usr/bin/env perl - env コマンドを使用して、 perl 実行可能ファイルへのパスを見つけます。 #!/usr/bin/python python バイナリを使用してファイルを実行します。

BashスクリプトでのShebangの使用

シバンが指定されておらず、Bashスクリプトを実行しているユーザーが別のシェルを使用している場合、そのシェルで使用されるデフォルトのインタープリターがスクリプトを解析します。 たとえば、 bash のデフォルトのインタープリターは bash で、 zsh のデフォルトのインタープリターは sh です。 スクリプトが常にBashで解釈されるようにするには、shebangを使用して実行可能パスを指定する必要があります。

Shebangディレクティブを使用してインタープリターを設定するには、2つの方法があります。

  1. bashバイナリへの絶対パスを使用します。

    #!/bin/bash

    env ユーティリティの使用:

    #!/usr/bin/env bash

2番目のアプローチを使用する利点は、ユーザーの $PATH 環境変数で bash 実行可能ファイルを検索することです。 bash へのパスが複数ある場合、最初のパスがスクリプトによって使用されます。

最初のオプションを使用してBashシェルにオプションを追加する場合は、インタープリターに渡します。 たとえば、スクリプトをデバッグモードで実行するには、 #!/bin/bash -x ます。 env メソッドを使用している場合は、 set を使用してオプションを宣言する必要があります。 デバッグモードを有効にするには、shebang行の後に set -x を追加します。

サンプルスクリプト

「Hello、World」を出力するshebangを使用して簡単なスクリプトを作成しましょう。 テキストエディターを開き、次の行を貼り付けます。

nano hello_world こんにちは世界

#!/bin/bash echo "Hello, World"

コマンドラインからインタープリターを指定せずにスクリプトを実行できるようにするには、ファイルを実行可能にする必要があります。

chmod +x hello_world

ここで、。 ./ 続けてスクリプト名を入力してスクリプトを実行できる場合:

./hello_world

Hello, World

シバンのオーバーライド

何らかの理由で、Shebang行に設定されているインタープリターをオーバーライドする場合は、目的のシェルを明示的に指定してスクリプトを実行する必要があります。

たとえば、 bash シェルを使用して、Shebang行で #!/bin/sh 指定されているスクリプトを実行するには、次のように入力します。

bash hello_world

スクリプトの予期しない動作を引き起こす可能性があるため、シェルインタープリターをオーバーライドすることはお勧めできません。

結論

ここまでで、Shebangとは何か、Bashスクリプトでそれを使用する方法について十分に理解できたはずです。

バッシュターミナル