だから私の.profile
外観は次のとおりです。
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
if [ -f "$HOME/.local/share/profile" ]; then
. "$HOME/.local/share/profile"
fi
# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
export VISUAL=nano
export EDITOR="$VISUAL"
stty -ixon
function test-func {
echo test-func
}
alias test-alias='echo test-alias'
Gnome(Fedora 35)にログインして端末エミュレータを開くと、機能を実行できませんtest-func
。
$ test-func
bash: test-func: command not found
ただし、関数を.bashrc
ファイルに入れてログアウトしてから再度ログインすると、test-func
関数を実行できます。
.profile
追加された機能が環境で利用できない理由はありますか?
編集:それで、グラフィカルではなくログイン(Ctrl + Alt + F3トリックを使用)を使用してログインすると、このtest-func
機能を使用できることがわかりました。 Gnomeが.profile
非ログインシェルで機能を提供しない理由はありますか?
func-name () { ... }
編集2:関数に(代わりに)POSIX準拠の構文を使用してもfunction func-name { ... }
効果がないことも確認しました。
答え1
これはおそらくコメントに近いですが、評判が十分ではないので、私が得たものは次のとおりです。
- この問題は特にGnomeとは関係ありません。私はKDEを使用していますが、この問題も発生しました。
- に関数を入れると
~/.bash_profile
使えるようになります。同じことを確認できますか?このようなことが起こった場合は、別の手がかりを得ることができます~/.profile
。~/.bash_profile
実際には、ログインシェルの面で異なる処理を~/.profile
します。~/.bash_profile
~/.bash_profile
手動説明する)。これを実行してGUIセッションを初期化し、スクリプトソースがFedoraにのみ存在するように見えることをjournalctl
確認できます。/etc/X11/xinit/Xsession
Xsession
/etc/X11/xinit/xinitrc-common
~/.profile
私の2セント。