当前位置: 首页 > article >正文

Shell判断:流程控制—if(三)

一、调试脚本

             1、调试脚本的其他方法:

                [root@localhost ~] # sh -n useradd.sh 仅调试脚本中的语法错误。

                [root@localhost ~]# sh -vx useradd.sh 以调试的方式执行,查询整个执行过程。

              2、示例:

[root@localhost ~]# sh -n useradd.sh    #调试脚本中的语法错误。


[root@localhost ~]# sh -vx file1.sh     #调试的方式执行,查询整个执行过程。
echo "hello 2023"
+ echo 'hello 2023'
hello 2023
read -p "请输入您的姓名:" name
+ read -p 请输入您的姓名: name
请输入您的姓名:abc
echo "您好 $name"
+ echo '您好 abc'
您好 abc

 

 

二、注意 :        

  • 1、[]表示条件测试。注意这里的空格很重要。要注意在[‘后面和’]前面都必须有空格。
  • 2、在shell中,then和fi是分开的语句。如果要在同一行里面输入,则需要用分号将它们隔开。
  • 3、注意if判断中对于变量的处理,需要加引号,以免一些不必要的错误。没有加双引号会在一些含空格等的字符串变量判断的时候产生错误。比如[-n “$var” ]如果var为空会出错。
  • 4、判断是不支持浮点值的。
  • 5、如果只单独使用>或者<号,系统会认为是输出或者输入重定向,虽然结果显示正确,但是其实是错误的,因此要对这些符号进行转意。
  • 6、默认,运行if语句中的命令,所产生的错误信息。仍然出现在脚本的输出结果中。
  • 7、使用-z或者-n来检查长度的时候,没有定义的变量也为0。
  • 8、空变量和没有初始化的变量可能会对shell脚本测试产生灾难性影响,因此在不确定变量的内容的时候,在测试号前使用-n或者-z测试一下。
  • 9、$?变量包含了之前执行命令的退出状态(最近完成的前台进程)(可以用于检测退出状态)。

        


http://www.kler.cn/a/134768.html

相关文章:

  • 【月之暗面kimi-注册/登录安全分析报告】
  • MySQL(5)【数据类型 —— 字符串类型】
  • 分布式锁实践方案
  • uniCloud云对象调用第三方接口,根据IP获取用户归属地的免费API接口,亲测可用
  • [ 网络安全介绍 5 ] 为什么要学习网络安全?
  • 基于混合配准策略的多模态医学图像配准方法研究
  • 微服务实战系列之Gateway
  • MidJourney笔记(1)-入门
  • 九章云极DataCanvas大模型系列成果发布会重磅来袭,诚邀见证!
  • 程序设计实践学习笔记
  • 充电桩负载测试需要检测哪些项目
  • JSP页面文本展示正常 但定义在java代码中的内容 输出在页面上会变成问号 问题解决
  • 你学了Python之后让你成为行业卷王,升职加薪更有优势
  • 用微信玩转家用监控?深信服专家提醒家用小心安全问题
  • 交易机器人-微信群通知
  • store下的getter.js什么作用
  • ES的常用查询
  • 深入了解 Bat 脚本:简单而强大的自动化工具——基础版
  • Appium移动自动化测试--安装Appium
  • h264流播放
  • 科技云报道:全球勒索攻击创历史新高,如何建立网络安全的防线?
  • Servlet API 详解
  • js中数组的遍历的几种方法
  • ERR_PNPM_INVALID_WORKSPACE_CONFIGURATION packages field missing or empty
  • Vue3 插槽 v-slot
  • 【目标测距】雷达投影测距