Parameters ksh:参数未设置问题。很奇怪

Parameters ksh:参数未设置问题。很奇怪,parameters,ksh,Parameters,Ksh,我在运行ksh时遇到了一个非常奇怪的问题,让我发疯 红帽 ksh:ksh--版本 sh版本(AT&T研究)93t+2010-06-21 #!/bin/ksh -eu echo "hello" echo "main_class: $abc" 我得到了这个错误: hello ./aaa: line 3: abc./aaa: line 3: : parameter not set 而如果更改为以下,则看起来像是正常的“未设置参数”错误: 错误消息: hello ./aaa: line 3: ac:

我在运行ksh时遇到了一个非常奇怪的问题,让我发疯

红帽

ksh:ksh--版本 sh版本(AT&T研究)93t+2010-06-21

#!/bin/ksh -eu
echo "hello"
echo "main_class: $abc"
我得到了这个错误:

hello
./aaa: line 3: abc./aaa: line 3: : parameter not set
而如果更改为以下,则看起来像是正常的“未设置参数”错误:

错误消息:

hello
./aaa: line 3: ac: parameter not set

你能解释一下吗

不管怎样,关于错误的特征,我看到您试图回显字符串和变量,但我没有看到变量声明。。。。。。顺便说一句,我也在ksh上运行了你的代码(两种方式),它不会打印出错误,只会打印出所有内容,但变量为null且未设置
hello main_class:
@hedgehog,您是否在脚本的第一行添加了“#!/bin/ksh-eu”?至少,您应该看到“参数未设置”错误。没有声明这些变量的原因是出于目的,整个过程有点复杂,但主要的一点正如我在线程中所说的。是的,我确实添加了它,并且在ksh中运行时根本不会产生任何错误,只是如果变量应该是空的。。顺便说一句,我在solaris系统的ksh中运行了它。奇怪的是,它没有产生错误……我猜原始脚本在第3行中有一些非打印字符。在将
ac
编辑回
abc
后,您是否能够再现错误?
hello
./aaa: line 3: ac: parameter not set