ubuntu12.04中shell脚本无法使用source的原因及解决方法
2017-01-05 18:10
513 查看
现象: 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可以用了~
从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell;其表现为 /bin/sh 链接倒了/bin/dash而不是传统的/bin/bash。
ubuntu edgy是第一个将dash作为默认shell来发行的版本,这似乎是受了debian的影响。wiki 里面有官方的解释,https://wiki.ubuntu.com/DashAsBinSh,主要原因是dash更小,运行更快,还与POSIX兼容。
但目前存在的问题是,由于shell的更换,致使很多脚本出错,毕竟现在的很多脚本不是100%POSIX兼容。
在wiki里面也说到,如何将默认的shell改回bash,方法就是
在终端执行 sudo dpkg-reconfigure dash
然后选择 no。
原因: ls -l `which sh` 提示/bin/sh -> dash
这说明是用dash来进行解析的。
改回方法:
命令行执行:sudo dpkg-reconfigure dash
在界面中选择no
再ls -l `which sh` 提示/bin/sh -> bash
修改成功,source可以用了~
从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell;其表现为 /bin/sh 链接倒了/bin/dash而不是传统的/bin/bash。
ubuntu edgy是第一个将dash作为默认shell来发行的版本,这似乎是受了debian的影响。wiki 里面有官方的解释,https://wiki.ubuntu.com/DashAsBinSh,主要原因是dash更小,运行更快,还与POSIX兼容。
但目前存在的问题是,由于shell的更换,致使很多脚本出错,毕竟现在的很多脚本不是100%POSIX兼容。
在wiki里面也说到,如何将默认的shell改回bash,方法就是
在终端执行 sudo dpkg-reconfigure dash
然后选择 no。
相关文章推荐
- ubuntu12.04中shell脚本无法使用source的原因及解决方法
- ubuntu12.04中shell脚本无法使用source的原因及解决方法
- ubuntu12.04中shell脚本无法使用source的原因及解决方法
- ubuntu12.04中shell脚本无法使用source的原因及解决方法
- ubuntu12.04中shell脚本无法使用source的原因及解决方法
- ubuntu12.04中shell脚本无法使用source的原因及解决方法
- ubuntu12.04中shell脚本无法使用source的原因及解决方法
- shell脚本无法使用source的原因及解决方法
- shell脚本无法使用source的原因及解决方法
- debian中shell脚本无法使用source的原因及解决方法
- 【linux】Ubuntu中shell脚本无法使用source的原因及解决方法
- Ubuntu12.04无法使用vim系统剪贴板解决方法
- 各大网站无法使用右键的原因及解决方法
- sh文件在windows下修改后无法执行的解决方法以及shell脚本中含中文乱码
- 使用shell脚本解决VMware克隆主机后网络服务无法启动
- 使用MyEclipse无法上传文件到Hadoop HDFS的原因与解决方法
- 使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
- 在ASP.NET中使用IHttpHandler处理请求(如自实现AJAX)时,无法获得Session(或者说是Session 为 null)的原因及解决方法
- 部分地区移动手机无法使用QQ邮箱IMAP收件原因的分析[附解决方法]
- 使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法