Hi, > $ cat Makefile.test > SHELL := /bin/bash -u > [...] > /etc/bash.bashrc: line 7: PS1: unbound variable > [...] > Why do I get that unbound variable error?
According to a comment in /etc/bash.bashrc it tests for emptiness of PS1 in order to detect non-interactive shell sessions: # If not running interactively, don't do anything [ -z "$PS1" ] && return See https://sources.debian.org/src/bash/5.2~rc2-2/debian/etc.bash.bashrc/#L6 It should rather test for the variable being set, rather than being empty. Jumping ahead of more skilled experts i found in the web https://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash which brings me to a proposal for /etc/bash.bashrc [ -z "${PS1:+x}" ] && return Testing it: $ bash -u reports various "unbound variable". Now test whether a non-empty PS1 is properly recognized $ [ -z "${PS1:+x}" ] && echo "empty" $ Now with undefined PS1: $ unset PS1 makes the prompt invisible, but [ -z "${PS1:+x}" ] && echo "empty" empty and set PS1= [ -z "${PS1:+x}" ] && echo "empty" empty Back to a visible prompt: PS1='$ ' $ [ -z "${PS1:+x}" ] && echo "empty" $ Have a nice day :) Thomas