传递参数函数不起作用
Passing argument function not working
valid()
{
if [[ "" = "0" ]]; then
echo "Pass a file name as argument"
exit 1
fi
}
valid
if [ -f ]; then
echo " exists"
else
echo " doesnt exist"
fi
在上面的例子中,vaild()函数没有起作用,为什么?传递有效参数时,它会检查文件名并打印,但未传递时,它会打印 "exists".
当将字符串作为参数时,您应该检查 null
个字符串,而不是将其与 0 进行比较。您还需要将参数传递给有效函数。
valid()
{
if [ -z "" ]; then
echo "Pass a file name as argument"
exit 1
fi
}
valid
if [ -f "" ]; then
echo " exists"
else
echo " doesnt exist"
fi
而不是 if [[ "" = "0" ]]; then
您可以简单地将其更改为:
if [[ "" = "" ]]; then
它会按预期工作。
并且您还需要在 [ ]
语法中对变量进行双引号。 [[ ]]
语法可以处理空格而不需要任何双引号,但 [ ]
不能。
valid()
{
if [[ "" = "0" ]]; then
echo "Pass a file name as argument"
exit 1
fi
}
valid
if [ -f ]; then
echo " exists"
else
echo " doesnt exist"
fi
在上面的例子中,vaild()函数没有起作用,为什么?传递有效参数时,它会检查文件名并打印,但未传递时,它会打印 "exists".
当将字符串作为参数时,您应该检查 null
个字符串,而不是将其与 0 进行比较。您还需要将参数传递给有效函数。
valid()
{
if [ -z "" ]; then
echo "Pass a file name as argument"
exit 1
fi
}
valid
if [ -f "" ]; then
echo " exists"
else
echo " doesnt exist"
fi
而不是 if [[ "" = "0" ]]; then
您可以简单地将其更改为:
if [[ "" = "" ]]; then
它会按预期工作。
并且您还需要在 [ ]
语法中对变量进行双引号。 [[ ]]
语法可以处理空格而不需要任何双引号,但 [ ]
不能。