Bash 脚本 - 在引号中包装变量

Bash Script - Wrapping Variables in Quotes

我正在阅读 here,它建议我将我的变量用引号引起来,以防值包含空格。

如果我有以下脚本:

#!/bin/bash

function checkDirectory()
{
    local checkDir=

    if [[ -d $checkDir ]] ; then 
        echo "File is directory"
    fi


}


checkDirectory "/home/someuser/Downloads/"

如果我用引号括起我的参数,在这种情况下,"/home/someuser/Downloads/",我还需要用引号括起 $1 和 checkDir 吗?

没有。您不必这样做,因为 </code> 将被正确分配给 <code>checkDir,并且 bash 的 [[ ]] 不会进行分词,您的脚本将按预期工作。

但是,如果您使用 sh 测试 [ .. ] 那么您将遇到以下问题:

if [ -d $checkDir ] ; then 
    echo "File is directory"
fi

因此,引用您的变量总是一个好习惯,而不是必须记住它很重要,什么时候不重要。