OS X 上的 -w 测试给出未找到命令错误

OS X 上的 -w 测试给出未找到命令错误

我正在编写一个 bash 脚本,在 OS X 上进行测试,但它最终会在标准 Linux 环境中运行,并且会遇到奇怪的错误。

我的脚本中有这样的测试:

if [ ! -w $BP ]; then
  echo "'$1' not writable"
  exit 1
fi

对我来说这似乎非常合理并且在 Linux 下运行良好但是当尝试在 OS XI 上测试时出现以下错误消息:

startSvr.sh:第 135 行:[:缺少 `]' startSvr.sh:第 135 行:-w:未找到命令

那么这是因为 OS X 不支持-w测试吗?还是有其他原因导致它对我来说不起作用?例如环境

答案1

文件名后面可能没有空格吗?也就是说,该行实际上是

if [ ! -w $BP]; then

因为这会产生您看到的错误。


在 OP 指出目录名称可以包含空格后进行了更新

建议将代码更改为

if [ ! -w "$BP" ]; then

相关内容