그래서 내 .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
사용할 수 있게 됩니다. 같은 것을 확인해주실 수 있나요? 만약 이런 일이 당신에게도 일어난다면, 또 다른 단서를 얻을 수 있습니다: Fedora는 비로그인 쉘을 다르게 처리합니다~/.profile
.~/.bash_profile
실제로 로그인 쉘 측면에서 다르게 처리 ~/.profile
합니다 .~/.bash_profile
~/.bash_profile
수동설명하다). 이를 실행 하여 GUI 세션을 초기화하고 스크립트 소스가 Fedora에만 존재하는 것으로 나타나는지 journalctl
확인할 수 있습니다 ./etc/X11/xinit/Xsession
Xsession
/etc/X11/xinit/xinitrc-common
~/.profile
내 2센트.