command not found: sed というエラー

command not found: というエラー表示は時々見るが、この前ターミナル操作をしていたら、

command not found: sed

というエラーが出てきた。

sedが見つからない? ・・どういうこと?

いやいや、でも普通に sed --h と打ち込んだり man sed などとしてもきちんと表示されるので、sedコマンドがない、などということはなさそう。

しかし同じ操作をすると、やっぱり何度でも安心感を持ってそのエラーが再現される。

・・どういうこと?

具体的に何をしていたのかと言ったら、かつて .bashrc に書いていた、そして今は .zshrc に書いてある、短いシェルスクリプトの関数をターミナルから呼び出して動かしていたのだけど、たしかにというか、そのコードの中の sed の段階になるとエラーで落ちてしまっている状況だった。

それは自分にとってはかなり有用な関数(というかツール)だったので、とりあえずはどんな手を使ってでも動いてほしく、もうその部分だけでもなんとか応急手当できないかと試行錯誤する中で which sed をしたら /usr/bin/sed だというから、その関数の中のsedを全部 /usr/bin/sed に置き換えたらとりあえず動いた。 なんでやねん・・。

と思って、一旦その作業が落ち着いてからTwitterになんでやねん・・という感じのことを書いたら、詳しい方がこのようなことを教えてくれた。

え、ローカル変数・・おおお、たしかに! 思いっきり使っていた、変数名で path

で、とりあえずそれを path2 みたいにすると、あっさり消えた(普通に動いた)。なんという・・

本当にありがとうございましたありがとうございました。助かりました。🙏

で、今回 command not found: sed でいくら検索してもこれにつながる情報が一向に出てこなかったので、とりあえずここに書いておいた。同じハマり方をする人が今後出てこないとも限らないので・・。

それでふと思い出したけど、以前にもほとんど同じようなNG変数名によるハマり方をしていたんだっけ・・。(このときはfi

note103.hateblo.jp

もう5年前!