在Bash和KornShell(ksh)中,我看到以下脚本工作正常。
if [ -n "foo" ]
then
foo()
{
echo function foo is defined
}
else
bar()
{
echo function bar is defined
}
fi
foo
bar
它还会在执行时生成预期的输出。
$ bash scr.sh
function foo is defined
scr.sh: line 15: bar: command not found
$ ksh scr.sh
function foo is defined
scr.sh: line 15: bar: not found
我想知道这个脚本是否会在任何符合 POSIX 标准的外壳上运行并生成此输出。
我同意你对语法的解读。函数定义可能出现在 if
语句的主体中,使其执行具有条件。