广告位联系
返回顶部
分享到

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

linux shell 来源:互联网 作者:佚名 发布时间:2024-05-17 22:14:17 人浏览
摘要

shell中 ,set -u之后,使用没有初始化的变量,会导致报错 set -u: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令不在执行。 我们来试试。 准备一个脚本t1.sh: 1 ec

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

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

我们来试试。

准备一个脚本t1.sh:

1

echo "1:$1"

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

1

2

3

4

$ /bin/bash t1.sh 

1:

$ /bin/bash t1.sh 2 

1:2

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

1

2

3

4

5

$ /bin/bash -u t1.sh 2 

1:2

 

$ /bin/bash -u t1.sh 

t1.sh: 行 1: $1: 未绑定的变量

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

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

1

2

#!/bin/bash

echo "aaa : $aaa"

运行:

1

2

3

4

5

6

7

$ set -u

$ echo $bbb

-bash: bbb: 未绑定的变量

$ ./t2.sh

aaa :

$ . t2.sh

-bash: aaa: 未绑定的变量

1

2

3

4

5

6

7

$ set +u

$ echo $bbb

 

$ ./t2.sh

aaa :

$ . t2.sh

aaa :

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


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Linux sort命令具体使用介绍
    sort是 Linux 中用于对文件或标准输入的文本内容进行排序的命令。它支持按数值、字典序、月份、随机等方式排序,并可以控制排序顺序(升
  • shell set -u 和set +u的具体使用
    shell中 ,set -u之后,使用没有初始化的变量,会导致报错 set -u: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令
  • 使用curl命令查看服务器端口开放情况的方法

    使用curl命令查看服务器端口开放情况的方法
    1.ssh端口 22 curl -v 10.10.10.205:22 1 2 3 4 5 6 7 8 9 10 11 curl -v 10.10.10.205:22 * Trying 10.10.10.205:22... * Connected to 10.10.10.205 (10.10.10.205) port 22 GET / HTTP/1.1
  • linux命令中的大于号、小于号的作用及代表的意思

    linux命令中的大于号、小于号的作用及代表的意思
    在linux中,大家也许会经常看到 、 、 、、这几个小于号、大于号,那么他们分别代表什么意思呢? 好的我们来实验下先,先创建个 test.t
  • 进程状态ps -ef中的e、f含义讲解

    进程状态ps -ef中的e、f含义讲解
    linux或mac控制台下输入ps -ef | grep 关键字可以查看是否有相应的进程启动信息中包含关键字。如: ps的意思是process status,即进程状态。在控
  • Linux中的grep -v、-e、-E用法小结
    grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜
  • Linux实现彻底清理空文件夹的方法

    Linux实现彻底清理空文件夹的方法
    最近工作中遇到一个需求删除指定路径下的所有空文件夹。这里的空文件夹的认定标准是:如果某个文件夹的子文件夹全是空文件夹,也认
  • shell脚本实现字符串的动态替换方法

    shell脚本实现字符串的动态替换方法
    我们有时候需要完成字符串的多组替换,比如需要完成以下替换 将小草替换为真是让人印象深刻 将小狗的替换为可爱的 将你听清楚了吗替
  • shell循环命令的介绍
    1. for 命令 1.1 for 命令的使用 bash shell 提供了for命令,可以创建一个遍历一系列值的循环。每次一轮循环都使用其中一个值来执行已定义好的
  • shell脚本设置日志格式的方法
    shell脚本设置日志格式 1.封装函数 #!/bin/bash function log() { echo $@ } //测试: log this is a test... log today is `date +%Y-%m-%d` 2.设置时间日志 #!/bin/bash
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计