Only do fish_greeting if interactive

Even if __fish_config_interactive, it can be shown when a script
uses `read`.

Fixes #3261, #1401.
This commit is contained in:
Aaron Gyes 2016-07-30 22:47:17 -07:00
parent e75fc8452f
commit b77e2a67f8

View file

@ -110,13 +110,15 @@ function __fish_config_interactive -d "Initializations that should be performed
# Print a greeting.
# fish_greeting can be a function (preferred) or a variable.
#
if functions -q fish_greeting
fish_greeting
else
# The greeting used to be skipped when fish_greeting was empty (not just undefined)
# Keep it that way to not print superfluous newlines on old configuration
test -n "$fish_greeting"
and echo $fish_greeting
if status --is-interactive
if functions -q fish_greeting
fish_greeting
else
# The greeting used to be skipped when fish_greeting was empty (not just undefined)
# Keep it that way to not print superfluous newlines on old configuration
test -n "$fish_greeting"
and echo $fish_greeting
end
end
#