您的位置:首页 > 运维架构 > Shell

ubuntu12.04中shell脚本无法使用source的原因及解决方法

2014-11-03 13:31 716 查看
现象: shell脚本中source aaa.sh时提示 source: not found

原因: ls -l `which sh` 提示/bin/sh -> dash

这说明是用dash来进行解析的。

改回方法:

命令行执行:sudo dpkg-reconfigure dash

在界面中选择no

再ls -l `which sh` 提示/bin/sh -> bash

修改成功,source可以用了~

说明:

Dash Shell 是一个Unix Shell,比Bash Shell 小的多,符合POSIX标准。Debian曾经采用/bin/bash的更改/bin/dash,目的使用更少的磁盘空间、提供较少的功能、获取更快的速度。但是后来经过shell脚本测试存在运行问题。因为原先在bash shell 下可以运行的shell script (shell 脚本),会出现一些意想不到的问题,不是100%的兼用。

Ubuntu继承了Debian,所以从Ubuntu 6.10开始默认是Dash Shell。

解决办法:重新配置shell

1. sudo dpkg-reconfigure dash

选择NO,不使用Dash Shell。

2.采用链接指向

ln -s /bin/bash /bin/sh

检查是否正确:ls -l /bin/sh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: