十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
最近一段时间在使用Bash on Ubuntu on Windows做shell脚本调试时发现在脚本中使用source时会报错,上网查了下才了解到原来是在Ubuntu中使用的并不是bash,而是使用优化过的dash,而在dash中是没有source,而在bash中才有source,这就有点麻烦了,平时在写脚本时有时会调用系统的function和一些自定义的function,没有source确实有点不太方便,而在此时可以在使用dpkg-reconfigure来修改配置dash,在平时可以用以下方法来验证看下自己的系统中使用的shell环境:
成都创新互联公司专业成都网站制作、网站建设,集网站策划、网站设计、网站制作于一体,网站seo、网站优化、网站营销、软文发稿等专业人才根据搜索规律编程设计,让网站在运行后,在搜索中有好的表现,专业设计制作为您带来效益的网站!让网站建设为您创造效益。
root@localhost:~# ls -l $(which sh) lrwxrwxrwx 1 root root 4 9月 9 22:09 /bin/sh -> dash
修改下:
root@localhost:~# dpkg-reconfigure dash
之后选择否,此时再看系统中使用的shell环境就改成bash
root@localhost:~# ls -l $(which sh) lrwxrwxrwx 1 root root 4 9月 9 22:09 /bin/sh -> bash
在此时就可以使用source,当然如果想不改动系统中的默认设置,也可以在平时写脚本使用定义好正确的shell环境,或者直接如下,用系统中的env命令让系统自己去寻找正确的shell环境:
#!/bin/env bash