KornShell错误0403-004使用此命令指定参数

KornShell错误0403-004使用此命令指定参数,shell,scripting,ksh,Shell,Scripting,Ksh,此KornShell代码引发以下错误: 测试.ksh #! /usr/bin/ksh if [ ${fooVariable} = "" ]; then fooVariable="fooString" fi echo "${fooVariable}" #! /usr/bin/ksh if [ "${fooVariable}" = "" ]; then fooVariable="fooString" fi echo "${fooVariable}" 错误: @:/tmp

此KornShell代码引发以下错误:

测试.ksh

#! /usr/bin/ksh

if [ ${fooVariable} = "" ]; then
    fooVariable="fooString"
fi

echo "${fooVariable}"
#! /usr/bin/ksh

if [ "${fooVariable}" = "" ]; then
    fooVariable="fooString"
fi

echo "${fooVariable}"
错误:

@:/tmp #./test.ksh
./test.ksh[3]: test: 0403-004 Specify a parameter with this command.
@:/tmp #./test.ksh
fooString

为什么会抛出此错误以及如何修复它?

解决方案:

@:/tmp #./test.ksh
./test.ksh[3]: test: 0403-004 Specify a parameter with this command.
@:/tmp #./test.ksh
fooString
在变量周围加上双引号

测试.ksh

#! /usr/bin/ksh

if [ ${fooVariable} = "" ]; then
    fooVariable="fooString"
fi

echo "${fooVariable}"
#! /usr/bin/ksh

if [ "${fooVariable}" = "" ]; then
    fooVariable="fooString"
fi

echo "${fooVariable}"
输出:

@:/tmp #./test.ksh
./test.ksh[3]: test: 0403-004 Specify a parameter with this command.
@:/tmp #./test.ksh
fooString

您还可以使用ksh为设置默认值提供的特殊语法<代码>var1,默认值为${var1:=bar};使用默认值echo$var1\u