写这个是因为我在学习Linux时遇到如下情况:
1. echo -e "Hello world" 输出成 -e Hello world (妈蛋!!!!!书上明明就可以的 )
2. declare -i total= ....... -------> declare: not found(我晕,这是怎么回事)
后来查资料才发现sh file就会出现以上情况,但用bash 命令 去执行 就不会了。
解决方法:
输入sudo dpkg-reconfigure dash 之后选否 默认就是bash了
此命令是对已安装的包进行重新配置,在菜单(dash-bash-sh.png)中选择是否将 sh 链接到 dash (Install dash as /bin/sh?) 选择否即可。
原因:
原来因为shell其实有很多种,而且不同的shell 语法也不一定相同。
因为dash比bash更加小,速度快,所以现在高版本的Ubuntu默认都为dash。sh命令作为链接 连接到dash。
用命令ls -l /bin/sh 看看
但很多教程第一行都写#!/bin/bash ,但默认是dash不是bash 所以就有以上错误 。