为什么 "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()
可能找不到内置函数。
这绝对是一个错误,应该向上游报告。
使用从源代码编译的破折号二进制文件(版本 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()
可能找不到内置函数。
这绝对是一个错误,应该向上游报告。