Bash脚本中的set命令

  |  

摘要: 本文简单了解一下在 shell 脚本中 set 命令的作用和用法

【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:潮汐朝夕
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings


Bash 脚本执行时,会创建一个子 Shell

1
bash script.sh

以上命令执行后,script.sh 是在一个子 Shell 里执行。Bash 会给这个子 Shell 给定默认的各种参数。

而 set 命令就是用来修改子 Shell 环境的运行参数,也就是定制环境。

可以定制的参数很多,完整的可以参考这个 官方手册

直接执行 set 不带任何参数,会显示所有的环境变量和 Shell 函数。

1
set

下面主要介绍一下最常用的几个参数。

  • set -e: 只要出错就停止运行
  • set -o pipefail: set -e 对于含有管道的命令无效,加上个参数后,管道中任意命令出错都停止运行。
  • set -u: 遇到未定义变量或方法时,停止运行
  • set -x: 在每条命令执行前,输出命令原文

注意:bash 执行的命令,成功执行返回 0,反转返回一个正整数。可以用 $? 接收上一条命令的返回值。


Share