【发布时间】:2019-04-27 11:34:31
【问题描述】:
我正在尝试理解一个script,它会在以 root 身份执行时停止:
#!/usr/bin/env bash
if [ x"$(whoami)" = x"root" ]; then
echo "Error: don't run this script as root"
exit 1
fi
我已经对此进行了测试,即使我删除了 if 语句中的 x,它也能按预期工作。我的问题是为什么需要x"$(whoami)" 和x"root" 中的x?
【问题讨论】:
-
这个构造中的
x是一个古老的习惯用法,用于解决某些shell 中无法正确处理空字符串的错误。在现代 shell 中通常不需要它。 -
你使用的是什么版本?
-
@bluerojo bash 版本 4.3.48(1)。我意识到脚本在没有
x的情况下也可以工作。我已经编辑了问题。 -
@Sergio 如果它在没有 x 的情况下工作,那么我对这个问题感到困惑?
标签: bash