1 bash与dash

从Ubuntu 6.10开始,默认使用dash(theDebian Almquist Shell)而不是bash(the GNUBourne-Again Shell)但Login Shell还是bash. 原因是dash更快、更高效,而且它符合POSIX规范。Ubuntu在启动的时候会运行很多shell脚本,使用dash可以加快启动速度。

2 执行脚本常常会有一些不知名的错误

比如:build.sh: caller: not found

我还遇到过还有一些其他莫名其妙的错误

先看下自己的脚本是用bash解析还是dash解析的,脚本我们一般默认都是用bash

先用命令ls -l /bin/sh看看自己系统的脚本解析

3 切换sh为bash/dash

sudo dpkg-reconfigure dash

出现一个界面选择切换为bash解析即可解决:build.sh: caller: not found

切换回去重新执行一遍命令选择即可

03-05 22:14