2013-07-20 25 views
1

我有这样的脚本:减少包含空格的变量的双引号?

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

    # do more stuff with $file 
fi 

我希望做更多的东西与$file if块内,如发行mvcpln等,但我发现,每次我通过$file对于这些Unix命令,我必须用双引号括起来处理文件名中的空格,否则会出错。正如你在if条件中看到的,我已经做过一次了。

是否有任何方法只是双引号“一劳永逸”,所以我不必每次都这么做?

+0

不是非常实际的答案,但切换到'zsh'。它在默认情况下不对参数扩展执行分词,因此您可以放心地将它们不加引号。 – chepner

回答

2

不是我知道的,没有。只要您希望将其作为单个值进行处理,就需要引用该变量。

对于特别的测试,您可以避免使用双括号进行引用。然后分词不会发生。但是这并不能为您节省任何打字费用。

if [[ -f $file ]] ; then 
    ... 
fi 
4

有什么办法只是双引号“一劳永逸”,所以我不必每次都这么做吗?

号您必须双引号使用一个变量(特殊情况除外,见垫的答案),这可能会包含空格。没有办法绕过它。

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

相关问题