Shell脚本常见问题|学习笔记

简介: 快速学习Shell脚本常见问题

开发者学堂课程【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

相关文章
|
6月前
|
SQL JSON 前端开发
较为完整的SpringBoot项目结构
本文介绍了SpringBoot项目的分层结构与目录组成。项目分为四层:**controller层**(前端交互)、**service层**(业务逻辑处理)、**dao层**(数据库操作)和**model层**(实体类定义)。分层设计旨在实现关注点分离,降低耦合度,提高系统灵活性、可维护性和扩展性。此外,还详细说明了项目目录结构,包括`controller`、`service`、`dao`、`entity`、`param`、`util`等子目录的功能划分,便于团队协作开发。此架构有助于前后端分离,明确各模块职责,符合高内聚低耦合的设计原则。
4425 1
Unity精华☀️Audio Mixer终极教程:用《双人成行》讲解它的用途
Unity精华☀️Audio Mixer终极教程:用《双人成行》讲解它的用途
|
9月前
|
索引
什么是回表查询
当我们为一张表的name字段建立了索引 , 执行如下查询语句 : select name,age from user where name='Alice' 那么获取到数据的过程为 : 1. 根据name='Alice'查找索引树 , 定位到匹配数据的主键值为id=18 2. 根据id=18到主索引获取数据记录 (回表查询) 先定位主键值,再定位行记录就是所谓的回表查询,它的性能较扫一遍索引树低
|
存储 移动开发 前端开发
ruoyi-nbcio-plus基于多租户的flowable设计考虑
ruoyi-nbcio-plus基于多租户的flowable设计考虑
613 1
|
机器学习/深度学习 人工智能 数据处理
一文速通自监督学习(Self-supervised Learning):教机器自我探索的艺术
一文速通自监督学习(Self-supervised Learning):教机器自我探索的艺术
2840 0
|
C++
Visual C++ Build Tools 2015 安装包丢失或损坏[解决方案]
Visual C++ Build Tools 2015 安装包丢失或损坏[解决方案]
1487 0
|
Kubernetes 云计算 容器
《Edge Kubernetes - 构建边缘云计算基础设施》电子版地址
Edge Kubernetes - 构建边缘云计算基础设施
148 0
《Edge Kubernetes - 构建边缘云计算基础设施》电子版地址
|
存储 安全 Java
1-初识SpringSecurity:user in-memory
1-初识SpringSecurity:user in-memory
258 0
1-初识SpringSecurity:user in-memory