在我们将数百个ksh脚本从AIX、Solaris和HPUX移植到Linux的过程中,我发现了另一个问题。有关前面的问题,请参见here。
此代码:
#!/bin/ksh
if [ -a k* ]; then
echo "Oh yeah!"
else
echo "No way!"
fi
exit 0(当在以k开头的多个文件的目录中运行时)会生成“哦,是的!”当使用AT&ksh93变体(ksh88和ksh93)调用时。另一方面,它会产生错误信息,然后是“没门!”在其他ksh变体(pdksh、MKS ksh和bash)上。
同样,我的问题是:
发布于 2009-09-17 14:49:42
嗯,一年后,我的问题似乎没有解决办法。
我要加上这个答案,说我要忍受.
发布于 2008-12-23 16:19:17
我不会再在Linux上使用pdksh了。由于AT&T ksh已经成为OpenSource,所以可以从各种Linux发行版中获得包。例如,RedHat Enterprise和CentOS将ksh93作为"ksh“RPM包。
pdksh仍然在软件供应商的许多安装需求文档中提到。我们用ksh93替换了所有Linux系统上的pdksh,到目前为止没有出现任何问题。
发布于 2008-09-18 20:55:17
您确实意识到[是/usr/bin/test的别名(通常是链接、符号或硬链接),对吗?那么,实际的问题可能是不同版本的/usr/bin/test?
OTOH,ksh用一个内置的东西覆盖它。也许有办法让它不这么做?或者您可以显式别名(如果所有平台上的/usr/bin/test都兼容的话)为/usr/bin/test?
https://stackoverflow.com/questions/96133
复制相似问题