web-dev-qa-db-ja.com

「-bash:promptpath:コマンドが見つかりません」を解決するにはどうすればよいですか?

私のTurnkeylinuxマシンは、bashプロンプトに次のPS1環境変数を使用します。

PS1="${debian_chroot:+($debian_chroot)}\[\033[01;33m\]\u@\h \[\033[01;34m\]$(promptpath)\[\033[00m\]\$"

私は上記を本質的にストックの「DebianGNU/Linux 6.0\n\l」に接続しましたが、「promptpath」が利用できないと文句を言いました。

「どのプロンプトパス」を試しましたが、結果はNULLでした(何も見つかりませんでした)。プロンプトパスはプログラムではないようですが、それは何ですか?

プロンプトが変更なしで機能するように、ストックのDebianマシンでプロンプトパスを使用できるようにするにはどうすればよいですか?

1
starlocke

~/.bashrcを調べたところ、promptpathはある種のユーザー定義関数です。

# Set Prompt path to max 2 levels for best compromise of readability and usefulness
promptpath () {
    realpwd=$(realpath $PWD)
    realhome=$(realpath $HOME)

    # if we are in the home directory
    if echo $realpwd | grep -q "^$realhome"; then
        path=$(echo $realpwd | sed "s|^$realhome|\~|")
        if [ $path = "~" ] || [ $(dirname $path) = "~" ]; then
            echo $path
        else
            echo $(basename $(dirname $path))/$(basename $path)
        fi
        return
    fi

    path_dir=$(dirname $PWD)
    # if our parent dir is a top-level directory, don't mangle it
    if [ $(dirname $path_dir) = "/" ]; then
        echo $PWD
    else
        path_parent=$(basename $path_dir)
        path_base=$(basename $PWD)

        echo $path_parent/$path_base
    fi
}

TurnkeyLinux ~/.bashrcをDebianマシンにコピーしただけです。

2
starlocke