脚本运行异常:bash和dash的区别
答案:1 悬赏:10 手机版
解决时间 2021-02-08 15:55
- 提问者网友:十年饮冰
- 2021-02-08 08:45
脚本运行异常:bash和dash的区别
最佳答案
- 五星知识达人网友:往事埋风中
- 2021-02-08 09:22
ubuntu下shell脚本运行异常:bash和dash的区别我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e /nTest/n到执行就不同,直接用sh test.sh运行,会打印出-e(作为字符串);而直接在终端中输入echo -e /nTest/n是不会输出-e的。我就在想是什么原因,后来终于发现是Ubuntu下sh默认指向dash。echo $SHELL --> /bin/bashtype sh --> /bin/sh然后我到/bin下看了有sh -> dash,原来sh是/bin/dash的链接。后来google了一下才发现,buntu6.10已将先前默认的bashshell更换为了dash。其表现是/bin/sh链接到了/bin/dash而不是传统的/bin/bash。bash - GNU Bourne-Again SHelldash - Debian Almquist Shell可以分别man bash / man dash看一下。那么怎么把sh改为指向bash呢?最暴力的方法当然是直接把/bin/sh的软链接改到bash中,如:ln -s /bin/bash /bin/sh但是,有优雅一些的方法,sudo dpkg-reconfigure dash出现菜单问你是否要dash的时候,选no就可以了。再次检查一下, ls /bin/sh -al 发现软链接指向/bin/bash就可以了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯