[x" $ 1"的目的是什么? != x"" ]?

时间:2015-04-27 10:14:46

标签: bash shell sh dash-shell

[ x"$1" != x"" ]的目的是什么?

浏览xdg-screensaver,这是第一个运行的命令:

[ x"$1" != x"" ] || exit_failure_syntax

shebang是#!/bin/sh(对我来说是冲刺)。

我在其他旧的shell脚本中发现了类似的语法......这是为了什么目的?

我想有一个习惯使用||而不是&&退出...也许与set -e有关。但为什么不使用[ -n "$1" ] || exit_failure_syntax-z$# -ne 0之类的内容......

正如我所提到的,我之前见过这种奇怪的x"$var" = x""。为什么有人会这样做?

1 个答案:

答案 0 :(得分:1)

请参阅Which `[` can not compare empty strings?

这是一种老式的测试方法,即变量是空的还是不存在。