watchでbashのfunctionを定期実行させる
Pocket

最近は、定型的な作業はfunctionを事前に作っておいてそれを使うようにしているのだけど、たまにwatchコマンドとかで実行させたいときに引っかかることがある。
悲しいことだけど、watchコマンドなどではfunctionやenvは読み込んでくれない(PythonとかからSubprocessなどで呼び出す場合でも同様だろう)。なので、以下のように無理やり実行する方法を使っている。

watch "bash -c 'source ~/.bashrc 2>/dev/null; function ...'"

 

これでfunctionをwatchコマンド内でも実行できるようにできる。
個人的にRustで自作してるwatchコマンド(hwatch)を使う場合でも、同じ方法で処理している。

 

せめてhwatch側では何か対処方法無いかなと思ったりもしているけど、あまり思いつかない。
なにかいい方法が無いだろうか…。

 

Pocket

Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*