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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • shell脚本命令行参数简介

    shell脚本命令行参数简介

    本文详细介绍了shell脚本命令行参数的用法,在shell脚本中要注意命令行参数怎么使用,这也是shell编程中的重点内容,有需要的朋友参考下。
    2014-04-04
  • 如何写出安全的、基本功能完善的Bash脚本

    如何写出安全的、基本功能完善的Bash脚本

    这篇文章主要介绍了如何写出安全的、基本功能完善的Bash脚本,帮助大家更好的理解和使用bash shell,感兴趣的朋友可以了解下
    2020-12-12
  • 处理Shell脚本中带有空格的变量(bash脚本)

    处理Shell脚本中带有空格的变量(bash脚本)

    这篇文章主要介绍了处理Shell脚本中带有空格的变量,本文主要是通过bash脚本对于含空格文件处理方法,需要的朋友可以参考下
    2020-02-02
  • 利用Xshell进行文件传输的方法

    利用Xshell进行文件传输的方法

    文章介绍了如何使用Xshell连接到靶机或服务器,进行提权、修改密码、打包和传输文件的操作,感兴趣的朋友一起看看吧
    2025-03-03
  • CentOS 6.3下给PHP添加mssql扩展模块教程

    CentOS 6.3下给PHP添加mssql扩展模块教程

    这篇文章主要介绍了CentOS 6.3下给PHP添加mssql扩展模块教程,本文使用freetds编译安装实现,需要的朋友可以参考下
    2014-09-09
  • shell脚本加密工具shc使用详解

    shell脚本加密工具shc使用详解

    Linux下的shell脚本用途广泛,经常包含IP、Pwd等关键信息,可读可写的特点很容易造成信息泄露,导致严重后果。基于这些原因,对脚本实施加密便变得很有必要。本文介绍shell脚本加密工具应用场景分析,一起看看吧
    2021-06-06
  • Shell过滤器的具体使用

    Shell过滤器的具体使用

    这篇文章主要介绍了Shell过滤器的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 监视磁盘使用情况的Shell脚本(本地+远程)

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

    任何一个分区使用到90%就发送一个邮件给指定的收件人,到95%就在邮件主题出警告(warning),说明发送邮件程序EMAIL
    2013-01-01
  • Shell命令批量修改图片文件名

    Shell命令批量修改图片文件名

    这篇文章主要介绍了Shell命令批量修改图片文件名,本文使用for循环、awk、sed等命令实现批量修改图片文件名,需要的朋友可以参考下
    2014-12-12
  • shell脚本实现实时检测文件变更

    shell脚本实现实时检测文件变更

    这篇文章主要介绍了shell脚本实现实时检测文件变更,本文直接给出实现代码和使用方法,以及svn下的实现代码,需要的朋友可以参考下
    2015-05-05

最新评论