1

我有一个这样的脚本:

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

  # do more stuff with $file
fi

我想$file在 if 块内做更多的事情,比如 issue mvcpln等。但是我发现每次传递$file给这些 Unix 命令时,我都必须用双引号将其括起来以处理文件名,否则我会出错。正如您在 if 条件中看到的那样,我已经做了一次。

有没有办法“一劳永逸”地双引号,这样我就不必每次都这样做?

4

2 回答 2

4

有没有办法“一劳永逸”地双引号,这样我就不必每次都这样做?

不可以。您必须双引号引用可能包含空格的变量的每次用法(特殊情况除外,请参阅 Mat 的答案)。没有办法解决它。

这是不寻常的,有点烦人,但你很快就习惯了。

于 2013-07-20T12:45:13.220 回答
2

不是我知道的,不。每当您希望将该变量作为单个值处理时,您都需要引用该变量。

特别是对于测试,您可以避免使用双括号来引用它。那时不会发生分词。但这不会为您节省任何打字时间。

if [[ -f $file ]] ; then
  ...
fi
于 2013-07-20T12:45:32.393 回答