最近は定型的な作業はfunctionを事前に作っておいてそれを使うようにしているのだけど、たまにwatchコマンドとかで実行させたいときに引っかかることがある。
悲しいことだけど、watchコマンドなどではfunctionやenvは読み込んでくれない(PythonとかからSubprocessなどで呼び出す場合でも同様だろう)。 なので、以下のように無理やり実行する方法を使っている。
watch "bash -c 'source ~/.bashrc 2>/dev/null; function ...'"
これでfunctionをwatchコマンド内でも実行できるようにできる。
ちなみに、個人的にRustで自作してるwatchコマンド(hwatch)を使う場合でも同じ方法で処理している。
せめてhwatch側では何か対処方法無いかなと思ったりもしているけど、あまり思いつかない。 なにかいい方法が無いだろうか…。