博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ubuntu12.04中shell脚本无法使用source的原因及解决方法
阅读量:6710 次
发布时间:2019-06-25

本文共 563 字,大约阅读时间需要 1 分钟。

现象: 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。

转载地址:http://xiflo.baihongyu.com/

你可能感兴趣的文章
BUAA-OO-第一单元总结
查看>>
html5贪吃蛇小游戏
查看>>
基本 Unix /linux 命令
查看>>
如何理解深度学习中分布式训练中large batch size与learning rate的关系
查看>>
我的友情链接
查看>>
django python 创建app及models【Part 1】
查看>>
Ubuntu16.04交叉工具链安装
查看>>
我的友情链接
查看>>
CentOS下Denyhosts的安装和使用
查看>>
ORA-01722:invalid number 解决方法
查看>>
关于android中shape的使用
查看>>
Java Web开发初级篇之常见异常处理
查看>>
【Sensors】位置传感器(4)
查看>>
spring mvc中log4j的配置与使用
查看>>
Linux基本命令操作练习
查看>>
gridview多标题和后台生成标题控件
查看>>
linux 命令之 --用户管理
查看>>
Flask + Gunicorn + Nginx 部署
查看>>
二叉树基本操作实现
查看>>
linux 第三周作业
查看>>