[shell脚本报错:”: =: unary operator expected”解决办法

究其原因,是因为如果变量STATUS值为空,那么就成了 [ = “OK”] 。显然 [ 和 “OK” 不相等并且缺少了 [ 符号,所以报了这样的错误。

shell脚本之判断字符串是否相等

if[$str1=$str2]#注意这里的空格不能少!

Shell脚本“syntax error: unexpected end of file”原因及处理 (经典!)

原因:
最后发现我的脚本是在window环境下编写的,然后传到linux服务器上的,这时候问题来了,doc下的文本内容格式和unix下的格式有所不同,比如dos文件传输到unix系统时,会在每行的结尾多一个^M结束符。(我的就是这个原因)
解决:

  1. vim serverDeploy.sh
  2. :set fileformat=unix
  3. :wq

dos2unix也可轻松将一个windows下的文本文件转化为Unix兼容的格式。

解决shell脚本中文乱码问题

方法一:
在windows系统中修改文件类型:改为utf-8无签名

方法二:
修改环境配置文件
cd ~ && vim .bash_profile
在末尾增加以下内容:
export LANG=zh_CN.gbk
但我这边貌似这种方法没用,不知是容器原因还是啥原因