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
因此,引用您的变量总是一个好习惯,而不是必须记住它很重要,什么时候不重要。
我正在阅读 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
因此,引用您的变量总是一个好习惯,而不是必须记住它很重要,什么时候不重要。