~/.profile
の回数を確認するために、グローバルカウンター変数を作成しようとしています。 実行されます。したがって:
~/.bashrc
で :
# ...
if [ "$PROFILE_EXEC_TIMES" = "" ]; then
export PROFILE_EXEC_TIMES=0
fi
let "PROFILE_EXEC_TIMES += 1"
~/.profile
内 :
# ...
export PROFILE_EXEC_TIMES
let "PROFILE_EXEC_TIMES += 1"
しかし、新しいシェルを開いてecho $PROFILE_EXEC_TIMES
と書くと 、私が得るのは1
だけです 。 $PROFILE_EXEC_TIMES
2以上である必要があります。~/.profile
bashから供給されたものではありません…もしそうなら、~/.profile
の回数をチェックするために私がしなければならないこと 実行されますか?
編集:
/etc/gdm/Xsession
に気づきました ~/.profile
を調達しています 次の行で:
test -f "$HOME/.profile" && . "$HOME/.profile"
および~/.bashrc
~/.profile
で提供されています 次の行で:
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
また、~/.bashrc
に次の行を追加しました &~/.profile
:
echo $(cd ${0%/*} && echo $PWD/${0##*/}) >> /home/myUserName/a
ユーザーにログインした後、ファイルに1行しか追加されていないことがわかりました。
ここでの私の目標は次のとおりであることを強調したいと思います。~/.profile
の回数を調べる ユーザーがログインすると実行されます。
追加の詳細:
$ uname -a
Linux my-desktop 2.6.32-25-generic #45-Ubuntu SMP Sat Oct 16 19:52:42 UTC 2010 x86_64 GNU/Linux
$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"
- 私の/etc/ gdm / Xsession
- 私の〜/ .bashrc
- 私の〜/ .profile
承認された回答:
私の最初の答えに対するあなたのコメントから、あなたの本当の質問は「〜/ .profileはGNOMEによって供給されているのですか?」であるように思われます。答えはイエスです。 /etc/gdm/Xsession
を見てください :
# First read /etc/profile and .profile
test -f /etc/profile && . /etc/profile
test -f "$HOME/.profile" && . "$HOME/.profile"
# Second read /etc/xprofile and .xprofile for X specific setup
test -f /etc/xprofile && . /etc/xprofile
test -f "$HOME/.xprofile" && . "$HOME/.xprofile"
元の回答
bashのマンページから:
bashが対話型ログインシェルとして、または
–login
オプションを使用した非対話型シェルとして呼び出されると、最初に
ファイル/etc/ profileからコマンドを読み取り、実行します。その
ファイルが存在します。そのファイルを読んだ後、
~/.bash_profile
を探します 、~/.bash_login
、および~/.profile
、この順序で、
存在し、読み取り可能な
最初のコマンドから
コマンドを読み取って実行します。
したがって、ホームディレクトリに.bash_profileまたは.bash_loginというファイルがある場合があります。これらのいずれかが存在する場合、bashは.profileの代わりにそれを使用します。
関連:dconfまたはgsettingsを使用してデフォルトのキー値を読み取る方法は?