开发者学堂课程【Shell 脚本进阶:Shell脚本常见问题】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/799
Shell脚本常见问题
目录:
一、特殊字符问题
二、环境变量问题
三、如何排查问题
一、特殊字符问题
1不同操作系统脚本传输
2.从富文本复制代码
问题:在Windows系统中编辑的shell脚本,拷贝到Linux系统中,发现在每行的末尾会出现^M字符。
解决:使用dos2unix或sed直接替换
问题:脚本中存在一些不可打印的特殊字符 ,执行时会出现报错。
解决:使用cat -A直接查看并删除特殊字符;或od查看特殊字符的十六进制后sed替换
二、环境变量问题
Shell脚本在console中运行正常,通过计划任务的方式运行会出现异常。
通常,这种问题是环境变量导致的。crontab 不会缺省的从用户profile文件中读取环境变量参数。
解决:
(1)脚本中的命令(如java )使用绝对路径,这样就不需要依赖于环境变量
(2)在脚本的开头先加载环境变量
/etc/profile
~/ .bash_ _profile
三、如何排查问题
1、代码走读
(1)确定代码逻辑
(2)检查语法错误
(3)考虑异常处理
2、语法检测
(1)bash -n script.sh
3、跟踪运行
(1)bash -x script.sh