shell脚本调试

编写sell脚本通常应从小脚本开始,逐步过渡到中等长度的程序,不断积累经验,以便编写大型程序。为此,通常采用自底向上的方法,即先搞清楚要脚本做什么,然后将过程的连续阶段分解为独立的步骤,最后利用shell提示符,交互式地检查和调试每个独立的步骤。

shell脚本编写完后,可能无法工作,除了脚本文件缺少“执行”权限,其原因有两种可能:执行脚本的环境设置不对,或脚本本身有错误。

解决环境设置问题

环境设置不对是指运行脚本的环境不是为这种脚本设置的,所以脚本无法运行,通常包括以下3种情况。

①不能直接在其他shell下运行bash脚本,如当前启动的是C shell就无法直接执行bash脚本,解决的办法是,在脚本的第一行写上"#!/bin/bash",以使系统在Bourne Againshell下运行脚本。

②在PATH环境变量中没有包括"."(当前工作目录)。注意,PATH可以识别不带后继字符的”:”或相邻的"::“它们都作为为“.”的同义词。解决办法是,设置PATH,即“PATH=$PATH:.”。

③脚本文件与已存在命令的名字相同。在为脚本命名之前应检查,系统是否已经使用该名字。

Linux:shel脚本调试及环境问题l相关推荐

  1. Linux shell脚本调试

    1.调试脚本 set -e遇到执行非0时退出脚本; set-x打印执行过程; 例1 test1.sh set -e set -x echo // echo start... echo // cat / ...

  2. linux|shell脚本|有趣的知识---格式化输出日志和脚本调试方法以及kubernetes集群核心服务重启和集群证书备份脚本

    前言: shell脚本的功能十分强大,这一点毋庸置疑的.那么,平常的工作中总是免不了和脚本打交道,也免不了要自己编写一些脚本. 每个人都希望自己编写的脚本强壮,简单,易用,功能多,并且总是希望脚本运行 ...

  3. Linux下shel脚本之批量修改文件扩展名

    Linux下shel脚本之批量修改文件扩展名 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 1.在/data/tmp/下的所有文件扩展名改为.py ...

  4. linux如何调试脚本程序,调试Linux shell脚本的方法

    在linux中调试shell脚本,常用的有三个方法.这里介绍下,希望对大家有所帮助. 方法一,使用echo命令. 在调试shell脚本时,可以用echo打印任何变量值,以判断错误原因. 方法二,she ...

  5. Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  6. shell脚本调试技术

    Shell脚本调试技术 曹 羽中 (caoyuz@cn.ibm.com), 软件工程师, IBM中国开发中心 曹羽中,在北京航空航天大学获得计算机软件与理论专业的硕士学位,具有数年的 unix 环境下 ...

  7. linux运维实战练习及linux shell脚本、awk、sed工具命令学习总结

    一.linux shell 脚本 1.描述shell程序的运行原理(可附带必要的图形说明): Linux系统的shell作为操纵系统的外壳,为用户提供使用操纵系统的接口.它是命令语言.命令解释程序及程 ...

  8. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  9. Linux shell脚本编程(一)

    -------------------------------------------------------------------- 注:如果你对python感兴趣,我这有个学习Python基地, ...

  10. Linux shell脚本基础学习详细介绍(完整版)2

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

最新文章

  1. 微软翻译突破百种语言和方言大关
  2. linux获取后台进程的控制台数据
  3. Java类的加载顺序
  4. leetcode145. 二叉树的后序遍历(dfs)
  5. Whoops, looks like something went wrong.
  6. 东风本田4S店违规收取续保押金 ,电台主持在线怒怼经理,反被指无教养?
  7. 电影'社交网络'获金球奖最佳影片,最佳编剧,最佳导演,最佳配乐奖
  8. 计算机配件模拟,模拟计算机是指什么
  9. 力扣-203 移除链表元素
  10. oracle添加两个约束,Oracle添加表约束的2种方法
  11. bzoj1814: Ural 1519 Formula 1 动态规划 插头dp
  12. 图像检索:基于内容的图像检索技术
  13. Python 每日一记248Java二叉树实现折纸问题
  14. 浅谈输入阻抗、输出阻抗和阻抗匹配
  15. 人工智能行业知识 - AI应用场景
  16. 前端基础进阶(三)-史上最详细的变量对象详解
  17. 微信中控网页授权的实现
  18. 台州爱乐搜5.18与您相约香溢大酒店
  19. 大型智慧灌区信息化管理系统云平台 智慧灌区信息化管理系统解决方案
  20. 【选择恐惧症】接口?虚基类?

热门文章

  1. Word2010如何从正文开始设置页码
  2. 林书豪055-阿联德比
  3. React-Native强制关闭软键盘
  4. Golang中使用Qt库(therecipe/qt)+QtDesigner + Goland (二) UI继承
  5. E3来了,今年有哪些令人期待的游戏新作?
  6. 微信推出网页版传输助手,真的好用吗?
  7. 内存地址重映射的选项_ARM处理器重映射原理的分析与实现
  8. 手机网络邻居访问电脑_手机怎么访问局域网电脑共享文件
  9. Poisson方程的五点差分格式例题求解-Matlab实现
  10. IMO 双帐号同步API文档