Suppress output in non-interactive shells
Add is_interactive_shell() helper and gate all user-visible echo/debug output behind it so that non-interactive invocations (scripts, cron, ssh commands) stay silent. Move functions.sh source earlier in bashrc so helpers are available sooner.
This commit is contained in:
7
bashrc
7
bashrc
@@ -7,13 +7,16 @@ export LWS=$WORKSPACE
|
|||||||
LWS_DEBUG=${LWS_DEBUG:-0}
|
LWS_DEBUG=${LWS_DEBUG:-0}
|
||||||
LWS_FAST=${LWS_FAST:-0}
|
LWS_FAST=${LWS_FAST:-0}
|
||||||
|
|
||||||
echo "Linux Workspace initialization"
|
source "$LWS/functions.sh"
|
||||||
|
|
||||||
if [[ -z $LC_ALL ]]; then
|
if [[ -z $LC_ALL ]]; then
|
||||||
export LC_ALL=en_US.UTF-8
|
export LC_ALL=en_US.UTF-8
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source "$LWS/functions.sh"
|
if is_interactive_shell; then
|
||||||
|
echo "Linux Workspace initialization"
|
||||||
|
fi
|
||||||
|
|
||||||
source_directory_sh "$LWS/rc"
|
source_directory_sh "$LWS/rc"
|
||||||
source_directory_sh "$HOME/.bashrc.d"
|
source_directory_sh "$HOME/.bashrc.d"
|
||||||
|
|
||||||
|
|||||||
10
functions.sh
10
functions.sh
@@ -5,6 +5,10 @@ if [ -z "$time_ms" ]; then
|
|||||||
readonly time_ms='date +%s%3N'
|
readonly time_ms='date +%s%3N'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
function is_interactive_shell() {
|
||||||
|
[[ $- == *i* ]]
|
||||||
|
}
|
||||||
|
|
||||||
function is_fast_init() {
|
function is_fast_init() {
|
||||||
(( $LWS_FAST ))
|
(( $LWS_FAST ))
|
||||||
}
|
}
|
||||||
@@ -14,7 +18,7 @@ function is_slow_init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function xlog() {
|
function xlog() {
|
||||||
if true_false "$LWS_DEBUG"; then
|
if is_interactive_shell && true_false "$LWS_DEBUG"; then
|
||||||
echo "$@"
|
echo "$@"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -100,11 +104,11 @@ function source_directory() {
|
|||||||
xlog "LOAD DIR $mask"
|
xlog "LOAD DIR $mask"
|
||||||
for file in $mask; do
|
for file in $mask; do
|
||||||
if [[ -e "$file" ]]; then
|
if [[ -e "$file" ]]; then
|
||||||
if (( $LWS_DEBUG )); then
|
if is_interactive_shell && (( $LWS_DEBUG )); then
|
||||||
start=$($time_ms)
|
start=$($time_ms)
|
||||||
source "$file"
|
source "$file"
|
||||||
stop=$($time_ms)
|
stop=$($time_ms)
|
||||||
echo "LOAD FILE $file $((stop - start)) ms"
|
xlog "LOAD FILE $file $((stop - start)) ms"
|
||||||
else
|
else
|
||||||
source "$file"
|
source "$file"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user