原始问题:在执行source xxx时,出现if: Expression Syntax. then: Command not found;
连锁问题:.bashrc中的自定义命令等不生效;
原因:打开终端中默认是/bin/sh,bash shell未激活,激活bash shell可以用:
exec bash
但是只在当前这个打开的终端生效,打开新的终端依旧是无效的;
终极解决方法:将用户打开的终端由默认的/bin/sh更改为bash。这样即使在重启后,打开的终端也默认是bash。
sudo chsh -s /bin/bash 用户名
为什么终端默认是sh而不是bash?
sh可以看作是bash的简化版,由于bash过于复杂和庞大,同时也占用了更多的资源,所以终端打开时默认是更小的sh