如何检测名称中是否包含空格的文件?

时间:2013-07-20 11:54:04

标签: string bash file-io escaping

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

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

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

产生以下错误:

binary operator expected

我没有正确逃脱?

1 个答案:

答案 0 :(得分:4)

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

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

如果你没有引用"$file",它会在测试中扩展为两个“单词”,但这会失败。使用引号,它将全部传递给测试。