Mac(Catalina)でのzshの自作コマンドの作り方

Macのターミナルで使える、いわゆる自作コマンドを作る方法について。

bashがベースだった頃のやり方はググればたくさん出てきますが、Mac OS Catalina から zsh になり、以前と少しやり方が違っていてちょっとつまづいたのでメモしておきます。

bashの頃にお世話になった参考記事

上記の記事と比べて、ちょろっと書く内容や用意するファイル名が違うだけになります。

目次

① コマンドファイルを配置するフォルダを作成する

自作コマンドごとにファイルを作成するのですが、それらを配置するフォルダをまずは作成しておきます。

今回は例として、ホームディレクトリ直下にmycommandというフォルダを作成するとします。

ホームディレクトリに mycommands を作成。

mkdir ~/mycommands

② フォルダまでのパスを通す

今作成したmycommandというフォルダの中にあるファイルをコマンドとして認識してもらうために、「パスを通す」必要があります。

Mac OS Catalinaからは zsh になっているので、.zshrcというファイルを編集します。

このファイルがホームディレクトリにまだなければ、自分で作成してください。

.zshrcを作成する(なければ)

touch ~/.zshrc

.zshrcが作成できたら(もとからあれば)、VS Codeなどのテキストエディタで開いて以下の一文を追記します。

mycommands までのパスを通す

export PATH=$HOME/mycommands:$PATH

$HOME~にあたります。

bashの時は、:$PATHが頭の方で書かれている記事が多いですが、zshはその書き方だとうまくいきませんでした。

.zshrcの変更を反映させる

今編集した内容を、sourceコマンドを使って即時反映させておきます。

変更内容を反映させる

source ~/.zshrc

③ コマンドファイルを作成する

①で用意したmycommandに、自作コマンドとして動かしたいファイルを作成します。

今回は例として、test-commandというコマンドを自作してみましょう。

拡張子のなしの、自作したいコマンド名をそのままファイル名にして作成します。

test-commandというファイルを作成する

touch ~/mycommands/test-command

コマンドファイルの権限を755に設定しておく

さらに、このファイルを実行できるように権限を調節しておきます。

test-commandというファイルの権限を755に変更

sudo chmod 755 ~/mycommands/test-command

※ この時、Macのユーザーパスワードを求められると思います。

④ コマンドファイルに好きな処理を書く

③で作成したtest-commandにコマンドの処理内容を記述します。

今回は例として、ただ「やっほー!」と文字列を出力するだけのコマンドにしてみます。

test-commandに処理を書く

#!/bin/sh
echo "やっほー!"

冒頭の!/bin/shはおまじないみたいなもので、詳しくは調べてないですがとりあえず書いとけばOKっぽいです。

⑤ 自作コマンド呼び出す

さて、ここまで来ればコマンドが動くはずです!

以下のコマンドを実行してみましょう。

test-command

「やっほー!」と表示されればOK!

動かなければターミナルを再起動したりしてみてください。

おまけ:コマンドの引数の受け取り方

さて、ここからはおまけです。

コマンドに投げた引数は、$1$2...のように受け取ることができます。

「やっほー!」という決まった文字列じゃなくて、引数に渡した文字列を受け取りそのまま出力するようなコマンドにしてみましょう。

test-commandを編集

#!/bin/sh
echo $1

そして以下のようなコマンドを実行してみてください。

test-command yahhooooo

yahhoooooと表示されれば成功です。

この記事が気に入ったら
フォローしてね!

コメント

コメントする

目次
閉じる