在bash和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标准的shell上运行并生成此输出。
答案 0 :(得分:1)
我同意你对语法的阅读。函数定义可能出现在if
语句的主体中,使其执行成为条件。