Shebangは(事前に検索してみる)シュ障害者と読みました。スィベンは #!
で始まる文字列であり、スクリプトの先頭最初の行にあります。
スィベンは、Unix系オペレーティングシステムでは、スクリプトが実行されるときは、Python、バッシュシェルなど、どんなインタプリタによって動作がされるかを示します。
スィベンでスクリプトの実行を試みる
例えば、以下のようなコードは、特別なインタプリタが指定されない場合Python2
で実行されます。
#!/usr/bin/python2
import sys
print("python version: %s"%sys.version_info[0])
もちろん、このファイルは、実行可能なファイルが必要です。 以下のように実行できるように権限を付与して実行をしてくれるします。
$ chmod +x shebang.py
$ ./shebang.py
結果を見ると、Pythonの2で実行された。 sys.version_info[0]
は、Pythonのバージョンを出力するコードです。
python version: 2
envを使用してスクリプトを実行する
スィベンを #!/usr/bin/python2
に設定すると、常に、Python 2で実行されます。
もし環境変数に設定されているPythonのバージョンを使用したいことができます。
こういうときは、 #!/usr/bin/env python
を使用します。
#!/usr/bin/env python
import sys
print("python version: %s"%sys.version_info[0])
まず、テストを試みるよ。現在私の環境変数は、Pythonの3に設定されています。
$ python --version
Python 3.7.0
上記のようにスィベンを変更して実行すると、Pythonの3で実行されるのを見ることができます。 もし環境変数をPythonの2に変更すると、Python 2で実行されます。
$ ./shebang.py
python version: 3
env
は、UnixとUnixライクのオペレーティングシステム用のシェルコマンドです。
環境変数のリストを出力したり、他のユーティリティを実行するのに使用することができます。
上記のコードは、envを利用して、 $PATH
に最初に検索されているPythonのバージョンでスクリプトを実行することができます。
バージョンの入力とenvの使用の長所と短所
バージョンを直接入力すると、環境変数に影響を受けずに、常に必要なインタープリタのバージョンで実行することができます。 欠点は、直接入力した場所にインタプリタがインストールされていない場合に実行することができません。 さまざまな環境で実行されるスクリプトの場合は、問題がある可能性があります。
一方、envを使用すると、環境変数に設定されたインタプリタは、例えば、Pythonで実行することができます。 しかし、Pythonのバージョン2でインストールしたのか3にインストールされていることに応じて異なる動作することができます。
その他の休み障害者に使用されるケース
スィベンは以下のような方法で使用されています。
- #!/bin/sh: / bin / shパスのBourneシェルまたは互換性のあるシェルを使用して、ファイルを実行
- #!/bin/csh -f: Cシェル(csh)または互換性のあるシェルを使用して、ファイルを実行し、起動時にユーザーの.cshrcファイルの実行を防止
- #!/usr/bin/perl: Tテイントスキャンオプションでパールを使用して、実
参考
Related Posts
- Linux - Hardware情報を示すコマンド
- Virtualenvインストールとセッティングする方法(Ubuntu)
- Linux - ファイル更新日時 確認
- Vi/Vimから1行または複数行を削除する方法
- UbuntuでGoogleドライブを使用する(ローカルフォルダにマウント)
- Ubuntuで利用可能なテキストエディタの紹介
- Ubuntu(Linux) - RAM(メモリ)サイズの確認
- Ubuntu(Linux)でMicrosoft Edgeブラウザをインストールする方法
- Ubuntu(Linux)からVisual Studio Codeをインストールする
- UbuntuでRight ALTをハンヨンキーに変換する
- Ubuntu - Python 3.9のインストール方法
- Proxy環境でpipを使用する方法
- Linux - IPアドレスを確認
- Linux - MAC Addressを確認する
- Linux - findコマンド
- Ubuntu 20.04 - SSHのインストールと接続方法
- apt remove、purge、autoremoveコマンドの違い
- Ubuntu 20.04 - OpenJDK 11のインストール、削除、
- Ubuntu 20.04 - VLC Playerのインストール
- Ubuntu - kernel更新する方法(manually)
- Bashシェルスクリプトファイルの絶対パスを取得
- Ubuntu18.04のネットワークイーサネットの名前を変更する方法(enp?をeth0に変更)
- Linux - chmodコマンドを使用する方法
- Linuxの - スィベン(Shebang)は何ですか?
- Linuxファイル圧縮コマンドまとめ
- UbuntuのデスクトップにShortcutアイコンを作成する方法
- UbuntuでPythonのバージョンを変更する方法