シェバンのターゲットを変更する

シェバンのターゲットを変更する

シェバンで使用するターゲットを作成したいと思いますpython3。例: 最初の行を使用します#!/usr/bin/env python3

私が試したこと:

  • setenv python3 PATH_TO_BINARYも入れて.cshrc、echo $python3もパスを表示します

  • /bin/env NAME=python3 PATH_TO_BINARY は python3 を開きますが、shebang の使用は許可しません。/bin/env python3=PATH_TO_BINARY も同様です。

重要であれば、次の問題を解決したいと思います。

私はrhel 6直接インストールできないシステムで作業していますが、アクセス可能なネットワーク リソースにインストールされているpython3システムを使用することはできますanaconda3。絶対パスでシェバンを配置する代わりに、python3 パスを適切に設定して、移植可能なコードを記述したいと思います。

答え1

この場合、#!変更する必要があるのは - 行ではなく、 です$PATH

#!/usr/bin/env python3

python3これにより、変数にリストされているディレクトリ内でインタープリターが検索されるようになります$PATH

python3が例えば にインストールされている場合$HOME/local/bin、このディレクトリは$PATH 前にインタープリターが含まれている可能性のある他のディレクトリpython3。含まれていない場合は、 で独自のインタープリターの代わりにそのインタープリターが使用されます$HOME/local/bin

だから設定する必要がある

PATH="$HOME/local/bin:$PATH"

コマンドラインまたはシェル初期化スクリプト (~/.bashrc例) のいずれかで実行します。C シェル ユーザーは別の方法で実行します...

set path = ($HOME/local/bin $path)

一般的に、#!-行は通訳者スクリプトの場合、つまり、ファイルを解析して実行するために使用するプログラムを指定します。sedたとえば、スクリプトでは を使用します#!/usr/bin/sed -f

関連情報