我有一个这样的脚本:
file="results/semester1 (2013).csv"
if [ -f "$file" ]; then
echo 'File exists.'
# do more stuff with $file
fi
我想在if块中使用$file
执行更多操作,例如问题mv
,cp
,ln
等。但我每次都发现我将$file
传递给这些Unix命令,我必须用双引号括起来处理文件名中的空格,否则我会收到错误。正如你在if条件中看到的那样,我已经做过一次了。
有没有什么办法可以“一劳永逸地”引用它,所以我不必每次都这么做?
答案 0 :(得分:4)
有没有什么办法可以“一劳永逸地”引用它,所以我不必每次都这么做?
没有。 必须双引用变量的每个用法(特殊情况除外,请参阅Mat的答案),其中可能包含空格。没有办法解决它。
这很不寻常,有点烦人,但你很快习惯了。
答案 1 :(得分:2)
不是我知道,不是。只要您希望将变量作为单个值处理,就需要引用该变量。
具体来说,您可以避免使用双括号引用它。然后就不会发生分词。但这并不能为您节省任何打字费用。
if [[ -f $file ]] ; then
...
fi