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

jav*_*e42 4 shell scripting ksh

此 KornShell 代码引发以下错误:

测试文件

#! /usr/bin/ksh

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

echo "${fooVariable}"
Run Code Online (Sandbox Code Playgroud)

错误:

@:/tmp #./test.ksh
./test.ksh[3]: test: 0403-004 Specify a parameter with this command.
Run Code Online (Sandbox Code Playgroud)

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

jav*_*e42 6

解决方案:

在变量周围加上双引号。

测试文件

#! /usr/bin/ksh

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

echo "${fooVariable}"
Run Code Online (Sandbox Code Playgroud)

输出:

@:/tmp #./test.ksh
fooString
Run Code Online (Sandbox Code Playgroud)