パスが x 文字より長い場合、複数行の bash プロンプトを表示しますか?

パスが x 文字より長い場合、複数行の bash プロンプトを表示しますか?

パスが「長すぎる」場合は、入力したコマンドが常に収まるように、bash プロンプトを 2 行に分割したいと思います。

現在のプロンプトは次のようになります: ~/go/src/asd$ ls -lah、パスが長すぎる場合、コマンドは常に行を折り返す必要があります。したがって、パスが長すぎる場合は、条件付きで 2 行のプロンプトにしたいと思います。これはどのように実行できますか?

答え1

ファイルの末尾に以下を追加します~/.bashrc:

path_len() {
  max_path=20
  currentPath=$(pwd)
  pathLen=${#currentPath}
  [ ${pathLen} -gt ${max_path} ] && printf "\n:"
}

PS1="\n\[\033[1;31m\]\u@\h: \[\033[32m\]\w\$(path_len)\[\033[0m\] -> "

max_pathそして、関数内の変数をpath_len「長すぎる」と言われた魔法の値に調整します ;)

関連情報