pyenv, rbenv等の使い方として.bashrcなりでeval"$(XXXenv init -)"という初期化をする必要があるようですが、2点不明な点があります。

  • evalで実行する意味
    直接 XXXenv init -とするのではなく、evalを使うことにどういった意図があるのでしょうか?

  • -の意味
    何を意味しているのか。カレントシェルで実行する.みたいなものなのかなとは思っているのですが、情報が見つかりませんでした。

追記
XXXenv init は標準出力に文字列を返してそれをevalで実行しているのですね。直接実行しないでevalを使わせる理由はなんでしょうか?実行権限をつける必要がないからとかですかね?

-はただのXXXenvへの引数でしかないことはわかりました。-ってどういった意味で使われることが多いのでしょうか?