相关疑难解决方法(0)

使用X""对空字符串进行Bash测试

我知道我可以在Bash中测试一个空字符串,-z如下所示:

if [[ -z $myvar ]]; then do_stuff; fi
Run Code Online (Sandbox Code Playgroud)

但我看到很多代码写得像:

if [[ X"" = X"$myvar" ]]; then do_stuff; fi
Run Code Online (Sandbox Code Playgroud)

这种方法更便携吗?它只是在日子之前的历史残余-z吗?它适用于POSIX shell(即使我已经看到它用于脚本定位bash)?准备好我的历史/可移植性课程.


在服务器故障上询问的问题是如何确定bash变量是否为空?但没有人提供解释为什么你看到代码与X""东西.

string bash shell posix

75
推荐指数
2
解决办法
7万
查看次数

为什么shell脚本比较经常使用x $ VAR = xyes?

我经常在使用autotools(autoconf,automake)的项目的构建脚本中看到这一点.当有人想检查shell变量的值时,他们经常使用这个习惯用法:

if test "x$SHELL_VAR" = "xyes"; then
...
Run Code Online (Sandbox Code Playgroud)

与简单地检查这样的值相比,这有什么好处:

if test $SHELL_VAR = "yes"; then
...
Run Code Online (Sandbox Code Playgroud)

我认为必须有一些原因让我经常看到这一点,但我无法弄清楚它是什么.

unix shell autotools

59
推荐指数
4
解决办法
2万
查看次数

标签 统计

shell ×2

autotools ×1

bash ×1

posix ×1

string ×1

unix ×1