bash/Linux: 自作コマンドの作り方

bash/Linux: 自作コマンドの作り方

自作のコマンドを作りたくなったので、メモとして残します。

検証環境

macOS High Sierra, bash 3.2.57

コマンドにしたいスクリプトを用意する

例として、西暦を和暦(平成のみ)に変換するbashスクリプトを作り、それをコマンドにしてみましょう。

heisei というファイル名で、以下のような内容を書いておきます。

year=$1
heisei=$(($year - 2000 + 12))
echo "H.$heisei"

$1 は、引数として渡される値です。
エラー制御も何もないひどい出来ですが、一応これでよしとしましょう。

実行するための準備

このファイルはただのシェルスクリプトなので、以下のように、sh で実行することもできます。

sh heisei 2018

ですが、やはり他のLinuxコマンド同様に、コマンド名のみで実行したいですね。
sh を省略するためには、以下の2点を行う必要があります。

  • ファイルに実行権限を付与する
  • パスが通っているディレクトリにファイルを移動する

まず、実行権限を与えます。

chmod u+x heisei

次に、パスを確認します。パスは、環境変数 $PATH で確認できます。コロンつなぎで見辛いため、tr などで改行に置換して出力すると見やすくなります。

echo $PATH | tr ':' '\n'

僕の環境では、/usr/local/bin にパスが通っていたので、ここに移動することにします。

mv heisei /usr/local/bin/

実行する

これで無事に、コマンド名のみで実行できます。

heisei 2018
# H.30

意外にも簡単に自作コマンドを作成できたので満足です。