12.2 Shell_set用法

set -u

当脚本中遇到未定义的变量时,默认是忽略。
有时候这并不是开发者想要的。
假如有未定义的变量,应该报错,并且终止脚本继续运行。
set -u 就可以办到
示例

#!/usr/bin/env bash
set -u

echo $a
echo shark

执行报错

$ bash set.sh
set.sh: line 13: a: unbound variable

set -x

这个调试脚本是使用,可以看到每个执行的命令,和执行命令后的输出结果。

#!/usr/bin/env bash
set -x

echo shark

bash -x set.sh 相同的含义。

set -e

脚本中有任何命令的返回值是非零,脚本则停止继续执行。
对管道的命令无效,比如:

foo | echo shark

foo 不是 shell 中的命令,执行会报错,但是其后面有个管道,最终管道后的 echo 命令执行成功了,这种情况下 脚本会继续执行。

set -o pipefail

如果设置,如果管道中的所有命令都成功退出,则返回零。 默认情况下禁用此选项

心得

set -u

脚本遇到未定义的变量是,默认是忽略。

set -u在脚本中设置之后,若有未定义的变量,则会报错,并终止脚本继续运行

该参数可以写在脚本中

set -x调试命令

该命令可以在执行脚本时加入,此时会显示脚本执行的顺序,相当于java的debug过程。
写在脚本中和bash -x script.sh相同的含义

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,947评论 0 5
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 10,232评论 0 11
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,131评论 0 10
  • 第 2 章 SHELL 基础知识2.1 shell脚本我们在上面简单介绍了一下什么是shell脚本,现在我们来进一...
    LiWei_9e4b阅读 5,457评论 0 0
  • 本文全面系统地介绍了shell脚本调试技术,包括使用echo, tee, trap等命令输出关键信息,跟踪变量的值...
    liuzg0734阅读 4,410评论 0 14