【问题标题】:What do z${variable} and zfalse in bash script mean? [duplicate]bash 脚本中的 z${variable} 和 zfalse 是什么意思? [复制]
【发布时间】:2019-02-19 18:40:41
【问题描述】:

我的 Linux 主机中有一个包含以下语句的现有脚本:

local variable=$1
if [ "z${variable}" != "zfalse" ]; then
  local flag="--some_flag"
fi

我在我的 Shell Scripting 书中没有找到对这些“z${variable}”和“zfalse”表示法或语法的解释。希望有人可以帮助解释他们的意思。提前致谢。

【问题讨论】:

标签: linux bash shell scripting


【解决方案1】:

'z' 用于防止语法错误,以防 ${variable} 评估为空。如果你的用户没有提供 $1 参数,${variable} 是空的,并且没有 'z',if 条件看起来像

if [ != false ] ...

语法不正确。使用'z',它变成:

if [ z != zfalse ] ...

【讨论】:

  • 这是不正确的。该变量被引用,因此 [ "${variable}" != "false" ] 即使使用空变量也可以正常工作。
  • @melpomene 今天没用,但几十年前,当一些 shell 错误地处理 "" 时,这种模式很有用。
  • 我们所说的十年数是相关的。正确的行为是 1992 年的标准规定,并且在此之前就已经广泛普及。
猜你喜欢
  • 2018-08-02
  • 2012-04-19
  • 2013-08-08
  • 1970-01-01
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多