在Linux下设置环境变量的时候,可能你也遇到过export: Command not found一类的错误。这是因为当前终端使用的不是bash,如何快速判断当前终端使用的是哪种类型的shell呢?
echo $0判断shell类型
最简单的方法就是在终端输入echo $0
,根据回显结果来判断。
注意:是$0 (数字0, 不是字母o)
如果输出的内容带有bash,则表示你使用的是bash;
如果输出的内容带有csh,则表示你使用的是csh。
看下面的例子:
默认使用的是bash,输入echo $0看回显结果
现在输入csh
切换到cshell环境,再输入echo $0查看回显
cshell环境下,使用setenv命令设置环境变量;bash中则使用export命令。
再尝试切换到tcsh,输入echo $0查看回显
tcsh也是csh的一种,所以也可以使用setenv命令。
bash和csh的差异
bash和csh的差异主要体现在以下几个方面:
1.语法结构
:csh的语法类似于C语言,支持类似于C语言的控制结构和变量引用;而bash的语法更接近于传统的Bourne shell,更加灵活且易于理解。
2.变量设置
:csh设置变量时使用set命令,如set a=100,=两边有无空格都可;bash设置变量时不需要set命令直接a=100即可,且=号两边必须无空格。
3.环境变量设置
:csh使用setenv命令设置环境变量;bash则使用export命令。
4.脚本兼容性
:由于语法和功能的差异,csh和bash的脚本不一定完全兼容,迁移脚本时可能需要进行修改和调整。
5.条件语句
:csh使用if / endif来写条件语句,而bash中使用if /then /fi。