299a86f6e3
On the live image, a fork/exec during login-shell startup can stall the shell before its first prompt. Replace command substitutions with pure builtins in the startup path: - bash.bashrc: read /etc/redox_chroot with the 'read' builtin instead of $(cat ...) - profile: derive the root prompt from EUID/USER/LOGNAME (set by login(1)) instead of $(id -u) - skel/.bashrc: disable lesspipe and dircolors eval (both spawn subprocesses); keep the ls --color=auto alias
33 lines
1.0 KiB
Bash
33 lines
1.0 KiB
Bash
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
|
|
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
|
|
|
|
if [ "${PS1-}" ]; then
|
|
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
|
|
# The file bash.bashrc already sets the default PS1.
|
|
# PS1='\h:\w\$ '
|
|
if [ -f /etc/bash.bashrc ]; then
|
|
. /etc/bash.bashrc
|
|
fi
|
|
else
|
|
# Do NOT spawn a subprocess here (the old `$(id -u)` command substitution).
|
|
# A login shell sources this file before drawing its first prompt; on Redox
|
|
# a process spawn during that window can stall, hanging the shell before it
|
|
# is ever usable. Use the shell/login-provided EUID or USER instead — both
|
|
# are set by login(1) — so this stays a pure builtin test with no fork/exec.
|
|
if [ "${EUID-}" = 0 ] || [ "${USER-}" = root ] || [ "${LOGNAME-}" = root ]; then
|
|
PS1='# '
|
|
else
|
|
PS1='$ '
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ -d /etc/profile.d ]; then
|
|
for i in /etc/profile.d/*.sh; do
|
|
if [ -r $i ]; then
|
|
. $i
|
|
fi
|
|
done
|
|
unset i
|
|
fi
|