.bash_profileがPS1変数を設定できないのはなぜですか?

.bash_profileがPS1変数を設定できないのはなぜですか?

.bash_profileを次のように設定しました。

 exec env -i HOME=$HOME TERM=vt100 PS1='\h' /bin/bash

ただし、ログインすると以下も表示されます。

 lfs@sam:~$ env
 TERM=vt100
 PWD=/home/lfs
 PS1=${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 
 SHLVL=1
 HOME=/home/lfs
 _=/usr/bin/env
 lfs@sam:~$

どうしたの?

ログイン時にPS1を設定するには?

ありがとうございます〜

ベストアンサー1

この値はPS1bashシステム全体の設定ファイルによって設定されます/etc/bash.bashrc。から選択してこれを行うことができます~/.bashrc

PS1シェル変数です。その意味は殻によって異なります。シェルを使用している場合はエスケープできますが、通常はプロセス環境ではないため、エクスポートしないでください。

bashは設定ファイルに関して非常に奇抜であることに注意してください。 bashのログインインスタンスを起動した場合は読み取りのみ、/etc/profileそれ~/.bash_profile以外~/.profileの場合は~/.bash_profile読み取りのみを行います/etc/bash.bashrc(そのように設定した場合)。そして~/.bashrc。 Bashのログインインスタンスから対話型設定を取得するには、次のコードを次の場所に配置する必要があります~/.bash_profile

if [ -r ~/.profile ]; then
  . ~/.profile
fi
case $- in *i*) if [ -r ~/.bashrc ]; then . ~/.bashrc; fi;; esac

シェル変数には、シェルが対話型であることを示す$-文字が含まれています。i

おすすめ記事