shell set -u 和set +u的具体使用

 更新时间:2024年05月17日 10:05:16   作者:小风筝123  
本文主要介绍了shell set -u 和set +u的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

shell中 ,set -u之后,使用没有初始化的变量,会导致报错

set -u: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令不在执行。

我们来试试。

准备一个脚本t1.sh:

echo "1:$1"

没有set -u之前,$1存在、不存在都可以,运行不报错:

$ /bin/bash t1.sh  
1:
$ /bin/bash t1.sh 2  
1:2

/bin/bash -u执行脚本相当于在子shell中做了set -u,/bin/bash -u xx.sh ,如果$1不存在,则会报错:

$ /bin/bash -u t1.sh 2  
1:2

$ /bin/bash -u t1.sh  
t1.sh: 行 1: $1: 未绑定的变量

我们试试set +u | set-u对当前进程和子进程的影响:

准备另个一个脚本t2.sh:

#!/bin/bash
echo "aaa : $aaa"

运行:

$ set -u
$ echo $bbb
-bash: bbb: 未绑定的变量
$ ./t2.sh
aaa : 
$ . t2.sh
-bash: aaa: 未绑定的变量
$ set +u
$ echo $bbb

$ ./t2.sh
aaa : 
$ . t2.sh
aaa : 

可见set +u | set -u只作用于本进程,不会作用于子进程。

到此这篇关于shell set -u 和set +u的具体使用的文章就介绍到这了,更多相关shell set -u 和set +u内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux解压缩(打开)Gz文件的命令详解

    Linux解压缩(打开)Gz文件的命令详解

    GNU 的 Gzip 是一种流行的数据压缩程序,而 GZ 文件是由标准 Gzip 压缩的存档文件,本文给大家介绍了如何在Linux解压缩(打开)Gz 文件,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2023-12-12
  • Python执行Linux系统命令的4种方法

    Python执行Linux系统命令的4种方法

    这篇文章主要介绍了Python执行Linux系统命令的4种方法,即在Python脚本中调用Shell命令,需要的朋友可以参考下
    2014-10-10
  • shell命令返回值判断的方法实现

    shell命令返回值判断的方法实现

    本文主要介绍了shell命令返回值判断的方法实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 监视磁盘使用情况的Shell脚本(本地+远程)

    监视磁盘使用情况的Shell脚本(本地+远程)

    任何一个分区使用到90%就发送一个邮件给指定的收件人,到95%就在邮件主题出警告(warning),说明发送邮件程序EMAIL
    2013-01-01
  • linux 中grep 匹配制表符 和 换行符的命令

    linux 中grep 匹配制表符 和 换行符的命令

    这篇文章主要介绍了linux 中grep 匹配制表符 和 换行符的命令,需要的朋友可以参考下
    2018-07-07
  • Shell脚本中的printf命令使用

    Shell脚本中的printf命令使用

    本文主要介绍了Shell脚本中的printf命令使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • MAC中用Shell脚本批量裁剪各种尺寸的App图标

    MAC中用Shell脚本批量裁剪各种尺寸的App图标

    这篇文章主要介绍了在MAC中用Shell脚本批量裁剪各种尺寸的App图标的方法,需要的朋友可以参考下
    2014-03-03
  • Shell中的变量使用小结

    Shell中的变量使用小结

    这篇文章主要介绍了Shell中的变量使用小结,本文总结了变量的语法、常见使用形式等内容,并分别给出代码示例,需要的朋友可以参考下
    2015-05-05
  • 详解bash中的退出状态机制

    详解bash中的退出状态机制

    这篇文章主要介绍了详解bash中的退出状态机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Vim中列出TODO与FIXME等备注的方法

    Vim中列出TODO与FIXME等备注的方法

    很多代码编辑器,在注释里写上 XXX TODO FIXME NOTE 关键字的话,这几个关键字是会被高亮显示的。但很多人不知道,下面这篇文章主要介绍了Vim中列出TODO与FIXME等备注的方法,文中通过示例代码介绍的非常详细,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06

最新评论