我读了一些here的内容,它建议我用引号将变量括起来,以防值包含空格。
如果我有以下脚本:

#!/bin/bash

function checkDirectory()
{
    local checkDir=$1

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


}


checkDirectory "/home/someuser/Downloads/"

如果我在引号中包装我的参数,在这种情况下,"/home/someuser/Downloads/"是否还需要在引号中包装$1和checkDir?

最佳答案

不,你不必,因为$1将被正确分配给checkDir,bash的[[ ]]不会进行分词,你的脚本将按预期工作。
但是,如果您使用shtest[ .. ]测试,那么您将遇到以下问题:

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

所以引用你的变量总是一个很好的做法,而不是必须记住它很重要。

关于linux - Bash脚本-将变量包装在引号中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29061148/

10-09 01:51