rinrin.me

シェルスクリプトの代わりとしてDenoを使う

要はshebangについてのお話

通常、.jsファイルにchmod +xしてあげても./hogehoge.jsみたいな形で実行することはできない。そもそもJSのランタイムひとつとっても色々ある(Node.jsとかDenoとか)ので、Denoで.jsを実行するために適切なshebangを書いてあげる。

結論

#!/usr/bin/env -S deno run --allow-all

これでOK。Node.jsとDenoは一行目にshebangが書かれている場合だけ、その部分をJSとして解釈せずにスルーしてくれる。

/usr/bin/envについてる-Sオプションは、引数をつけてプログラムを実行するときに必須。

余談

「そんなにモダンな言語でバッチ処理をしたいなら、最初からインストールされている可能性が高いPythonで書け」という意見はごもっともだが、あいにく私は波括弧が使えない言語が嫌いなのでこういったことをやっている。

また、APIがシンプルなのでNode.jsではなくDenoを使っている。