conray schrieb
/etc/profile ist glaube ich diejenige welche
shell="sh"
if test -f /proc/mounts; then
case $(/bin/ls -l /proc/$$/exe) in
*bash) shell=bash ;;
*dash) shell=dash ;;
*ash) shell=ash ;;
*ksh) shell=ksh ;;
*zsh) shell=zsh ;;
esac
fi
Dort wirds allerdings klein geschrieben.
Kann mir das jemand erläutern?^^
/etc/profile wird normalerweise von jeder Shell ausgeführt wenn Du dich anmeldest. Egal ob bei Deinem User
die zsh, die bash, die csh, die was-weiss-ich-shell eingetragen ist.
Da aber z.B. nicht in jeder Shell ein
export VARIABLE=wert
funktioniert sondern ggf in 2 Befehle aufgeteilt werden muss
VARIABLE=wert
export VARIABLE
wird mit dem obenstehenden CASE-Statement abgefragt welche Shell den zum Einsatz kommt und
der Name der Shell in die Variable "shell" eingetragen.
Gleich nach dem CASE kommt:
# Load shell specific profile settings
test -f "/etc/profile.$shell" && . "/etc/profile.$shell"
wird geguckt (test -f "/etc/profile.$shell") ob es für die Shell ein separates profile-Skript gibt und wenn's das gibt, dann wirds ausgeführt (. "/etc/profile.$shell")
conray schrieb
$ grep -R SHELL /etc/
/etc/default/useradd:SHELL=/bin/bash
Da ist sie^^
jo, das file wird aber nur ausgewertet, wenn Du mit useradd einen neuen User anlegst :-)