From 6a7d51b1cb338081aa111f3ec774aaf4d90c994b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Sat, 21 Sep 2019 01:04:07 +0300 Subject: [PATCH] MDEV-19211 Fix mysqld_safe --dry-run mysqld_safe --dry-run needs to either call exit or return, depending if it is being sourced or not, otherise return can lead to the error: return: can only `return' from a function or sourced script The original fix suggestion was proposed by FaramosCZ --- scripts/mysqld_safe.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index d51867d9d17..85f66fed075 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -970,7 +970,13 @@ do cmd="$cmd "`shell_quote_string "$i"` done cmd="$cmd $args" -[ $dry_run -eq 1 ] && return + +if [ $dry_run -eq 1 ] +then + # RETURN or EXIT depending if the script is being sourced or not. + (return 2> /dev/null) && return || exit +fi + # Avoid 'nohup: ignoring input' warning test -n "$NOHUP_NICENESS" && cmd="$cmd < /dev/null"