为什么 "dash -c ':'" 从源代码构建的破折号 0.5.8 会失败?

Why can "dash -c ':'" fail with dash 0.5.8 built from source?

使用从源代码编译的破折号二进制文件(版本 0.5.8,可在 http://gondor.apana.org.au/~herbert/dash/files/dash-0.5.8.tar.gz 获得),执行

dash -c ':'

失败

dash: 1: :: Permission denied

这意味着

case foo in
*bar*) :
   do_stuff ;;
*) :
   ;;
esac

失败,破坏了很多脚本。为什么用 ubuntu 分发的 dash 二进制文件没有这个问题?

如果 LC_ALL 设置为不同于默认的 ASCII 字节顺序 (LC_ALL=C) 的整理顺序,mkbuiltins 可以在 builtins.c 中生成一个数组,其中bsearch() 可能找不到内置函数。

这绝对是一个错误,应该向上游报告。