0

我正在尝试检测是否semester1 (2013).csv存在名为的文件。

到目前为止,我有以下内容:

file="results/semester1\ (2013).csv"
if [ -f $file ]; then
  echo 'File exists.'
fi

这会产生以下错误:

binary operator expected

我没有正确逃避什么?

4

1 回答 1

4

你逃避太多,但引用不够:

file="results/semester1 (2013).csv"
if [ -f "$file" ]; then
  echo 'File exists.'
fi

如果您不引用"$file",它将在测试中扩展为两个“单词”,并且失败。有了引号,它就可以全部通过测试了。

于 2013-07-20T11:55:25.550 回答