bash - 在 Bash 中,如何测试变量是否定义为 "-u"模式

标签 bash

我刚刚在 bash 中发现了 set -u,它帮助我找到了几个以前看不见的错误。但是我也有一个场景,我需要在计算一些默认值之前测试是否定义了一个变量。我想到的最好的办法是:

if [ "${variable-undefined}" == undefined ]; then
    variable="$(...)"
fi

这有效(只要变量没有字符串值 undefined)。请问有没有更好的办法?

最佳答案

这是我发现最适合我的方法,从其他答案中汲取灵感:

if [ -z "${varname-}" ]; then
  ...
  varname=$(...)
fi

关于bash - 在 Bash 中,如何测试变量是否定义为 "-u"模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11362250/

相关文章:

bash - 将 bash time 命令的输出加载到变量

linux - 删除 awk printf/print 之间的空格分隔符

bash - 递归列出目录中所有文件的视频时长

php - -bash : laravel: command not found

windows - 如何从 cygwin 内部执行 windows runas 命令

linux - 运行 Vagrant SSH 会导致 BASH 循环提前终止

linux - 如何使用 seq 填充小数位

bash - 使用 bash 解析 ldapsearch 的输出

bash - 如何使用 Bash 脚本中的密码运行 sftp 命令?

bash - Shell 脚本 - 根据 ISO 8601 UTC 格式的 'AWS cloudwatch metrics' 属性值对 "Timestamp"json 数组进行排序