![カスタム bash コマンドを作成する方法 (python、perl、ruby ファイルの実行)](https://rvso.com/image/1604254/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%20bash%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%20(python%E3%80%81perl%E3%80%81ruby%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%AE%9F%E8%A1%8C).png)
Python/Perl/Ruby で実行される特定のツールを使用したいと思います。たとえば、myProgram.py
は ~/folder1/folder2/ に保存されています。これを、 のような bash からの入力で実行したいと思います>>> myProgram -h
。
これまでに、同様のことを行う 2 つの方法について読みました。
- bin ディレクトリにファイルを作成します。
# in /bin/
~/folder1/folder2/myProgram
# this works when the target is a bash program
~/.bashrc
永続的なエイリアスの編集:
# in ~/.bashrc
alias myProgram='python ~/folder1/folder2/myProgram.py'
残念ながら、1 番目の方法は bash 以外のファイルでは機能しないようです (私が試した限りでは)。また、2 番目のオプションでは、次のようなエラーが返されるだけですmyProgram: command not found
。
コマンドを入力して Python/Perl/Ruby ツールにすばやくアクセスするための bash コマンドを作成するにはどうすればよいですか?
答え1
このようにスクリプトを実行するには、次の 3 つが必要です。
- スクリプトは、変数にリストされているディレクトリ内になければなりません
$PATH
。 にスクリプトを配置した場合~/bin
、ログイン時にいつでもファイルへのフルパスを指定せずにスクリプトを実行するには、.bashrc
次の行を追加してのパスを拡張する必要がありますexport PATH=$PATH:~/bin
。パスにすでに存在するディレクトリを確認するには、それを印刷するだけですecho $PATH
。 ファイルに変更を加えるには、.bashrc
再ログイン (または bash の再実行) する必要があります。 - スクリプトには実行ビット権限が設定されている必要があります。これを行うには、コマンドを実行します。
chmod +x /path/to/script
- スクリプトは、実行にどのインタープリターを使用するかを指定する必要があります。そのためには、スクリプトの最初の行として shebang: を使用します
#!/path/to/interpreter
。Python の場合は になります。OS によってバイナリの場所が異なる可能性があるため、どこにあってもデフォルトの Python インタープリターを実行する#!/usr/bin/python
shebang 形式を使用することをお勧めします。#!/usr/bin/env python
更新: コメントに基づいて、この回答をシンボリックリンクで更新しています。すでにインストールされているツールに簡単にアクセスできるようにしたいだけであれば、スクリプトを作成する必要はありません。そのツールの実行可能ファイルを見つけて (またはスクリプトの場合は、まだ実行可能でない場合は実行可能にして)、そのツールman ln
へのシンボリックリンク (を参照) を $PATH のディレクトリに配置する (または実行可能ファイルを含むディレクトリを $PATH に追加する) だけです。
alias
注: スクリプトを実行可能にして (2 を参照)、に追加する.bashrc
だけでも機能しますが、新しいスクリプトを作成するたびに新しいエイリアスを追加するのは非常に不便です。