GNU/Linux >> Linux の 問題 >  >> Ubuntu

〜/ .profileはBashから提供されていますか?

~/.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を使用してデフォルトのキー値を読み取る方法は?
Ubuntu
  1. 自動的に供給されるシェルスクリプトを/etc/ profileに書き込む方法は?

  2. Bashプロンプト表示Hh:mm:ss?

  3. bash での並べ替え

  1. Bashスクリプト(I)

  2. bash エクスポート コマンド

  3. コンピューター間で bash プロファイルを同期する

  1. Bashエクスポート変数

  2. .profile、.bashrcなどを理解するのを手伝ってください。

  3. PythonはBashと比較されますか?