web-dev-qa-db-ja.com

どうすればbashプロンプトに絶対パスを表示できますか?

私は現在bashを持っていますPS1を次のように設定します。

PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\w\n\$ "

相対パスではなく絶対パスを表示するにはどうすればよいですか(例:/home/dave/dir の代わりに ~/dir)?

52
David B

\w\$PWDに置き換えるだけです。

PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\$PWD\n\$ "

とにかく、ちょっとしたヒントが気になったら、次のようなものを書きます。

PS1='\[`[ $? = 0 ] && X=2 || X=1; tput setaf $X`\]\h\[`tput sgr0`\]:$PWD\n\$ '
55
cYrus

家に置く.bashrc

PS1='\u@\h:\w\$ '
30
Alex

Humm〜/ dirは絶対パスですが、「ショートカット」を使用しています。たとえば、cd /usr/localプロンプトは、おそらく/ usr/localの完全パスを表示します。とにかく、あなたはすでに完全なパスを持っています:-)

しかし、おそらく正しい質問は、〜のようなショートカットなしでフルパスを表示する方法です。

しかし、私はその答えを知りません、そして男性を見て、それはそれを持っているようです(少なくとも文書化されています)。

0
Huygens

\Wを使用する代わりにpwdを実行します。

シンプルなバージョン:

export PS1="\`pwd\` $ "

これをコードで使用する:

export PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\`pwd\`\n\$ "
0
Doug Harris

bashのps1で; -Wは相対であり、-wは絶対である必要があるため、上記ではすでに絶対的なものである必要がありますか?

http://wiki.archlinux.org/index.php/Color_Bash_Prompt

0
Sirex