shell中 ,set -u之后,使用没有初始化的变量,会导致报错 set -u: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令不在执行。 我们来试试。 准备一个脚本t1.sh: 1 ec
shell中 ,set -u之后,使用没有初始化的变量,会导致报错 set -u: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令不在执行。 我们来试试。 准备一个脚本t1.sh:
没有set -u之前,$1存在、不存在都可以,运行不报错:
/bin/bash -u执行脚本相当于在子shell中做了set -u,/bin/bash -u xx.sh ,如果$1不存在,则会报错:
我们试试set +u | set-u对当前进程和子进程的影响: 准备另个一个脚本t2.sh:
运行:
可见set +u | set -u只作用于本进程,不会作用于子进程。 |
2024-05-08
2021-06-17
2022-11-09
2022-08-09
2022-08-22