shell 踩坑记

1.变量赋值时,等号两边不能有空格;

2.在判断表达式中,不论是 [ -n "$1" ] 还是 [ -f  "$1" ] 都要在变量两侧加上双引号;

3.在使用与或非判断式时,方括号内可以不用方括号,但是要保持空格间距 [ -d "directory" -a $ret -eq 0 ];

4.使用mv命令对符号连接目录中的文件进行移动时,如果目的路径是相对路径, 那么相对路径是相对于符号连接目录。

 

5.在 /etc/profile 中配置变量

如果没有export来导出变量,那仅仅是创建了一个shell变量,而不是用户环境变量。

案例:启动 RocketMQ的 mynamesrv时,报错,JAVA_HOME没有配置,实际在/etc/profile中的配置没有生效,

其实就是没有使用export导出为用户环境变量,env、set 都看不到JAVA_HOME

 

6.shell脚本中使用变量 ${}来获得变量值

获得执行结果 $() 和``效果一样;

$[]和 $(()) 效果一样

转载于:https://www.cnblogs.com/zhengwenqiang/p/7490700.html

你可能感兴趣的:(shell 踩坑记)