Files
RedBear-OS/recipes/shells/bash/etc/bash.bashrc
T
vasilito 299a86f6e3 bash: avoid subprocess spawns during interactive shell startup
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
2026-07-20 09:05:32 +09:00

43 lines
1.4 KiB
Plaintext

# System-wide .bashrc file for interactive bash(1) shells.
# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# TODO: redox_chroot
# Read the file with the `read` builtin instead of `$(cat ...)`: a command
# substitution here fork/execs a subprocess, and a spawn during interactive
# shell startup can stall the shell on the live image before its first prompt.
if [ -z "${redox_chroot:-}" ] && [ -r /etc/redox_chroot ]; then
read -r redox_chroot < /etc/redox_chroot 2>/dev/null || redox_chroot=
fi
# set a fancy prompt (non-color, overwrite the one in /etc/profile)
# but only if not SUDOing and have SUDO_PS1 set; then assume smart user.
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
PS1='${redox_chroot:+($redox_chroot)}\u@\h:\w\$ '
fi
# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
# PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
# ;;
#*)
# ;;
#esac
# enable bash completion in interactive shells
#if ! shopt -oq posix; then
# if [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
# fi
#fi