解决`source /etc/profile`报错问题

现象

[root@localhost ~]# source /etc/profile
-bash: /etc/profile: line 21: syntax error near unexpected token `esac'
-bash: /etc/profile: line 21: `    esac'

在进行环境变量设置后,使配置文件生效时,总是报上述错误。

分析

1、一开始根据网上查到的解决方法以为是Linux和Windows的转换符问题,解决发现不是;由于全程使用vim在Linux上操作,根本不可能出现Windows的转换符问题。
2、后来分析上述文件中,发现,可能是由于配置的alias快捷键(命令别名)恰好是shell的关键字所致,一查,果然在/etc/bashrc的alias中,配置了alias if='ifconfig eno1'。

另外fi也不能作为alias的快捷键!

解决

由于直接在/etc/bashrc中修改有问题的alias已经没办法使之生效,所以需要使用unalias命令,具体操作如下:

步骤一

# 删除命令别名`if`
unalias if

步骤二

if命令别名失效后,即可在bashrc中将该命令注释或删除,删除后执行source /etc/bashrc

步骤三

重新使用source /etc/profile命令即可。

End

推荐阅读更多精彩内容