在符合 POSIX 的外壳脚本中是否允许条件函数定义



在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 语句的主体中,使其执行具有条件。

相关内容

  • 没有找到相关文章

最新更新