代码之家  ›  专栏  ›  技术社区  ›  Andrew Stein

Redux:如何克服Linux上的ksh与安装在AIX/solaris/hpux上的ksh之间的不兼容性?

  •  2
  • Andrew Stein  · 技术社区  · 17 年前

    我在将数百个ksh脚本从AIX、Solaris和hpux移植到Linux的工作中发现了另一个问题。见 here 对于上一个问题。

    此代码:

    #!/bin/ksh
    if [ -a k* ]; then
        echo "Oh yeah!"
    else
        echo "No way!"
    fi
    exit 0
    

    (当运行在一个目录中,其中有几个文件的名称以k开头时)生成“噢,是的!”当使用AT&T ksh变体(ksh88和ksh93)调用时。另一方面,它会产生错误消息,后面跟着“不可能!”其他ksh变体(pdksh、mks ksh和bash)。

    我的问题是:

    • 是否有环境变量会导致pdksh的行为与ksh93类似?失败了:
    • pdksh上是否有获得所需行为的选项?
    4 回复  |  直到 17 年前
        1
  •  5
  •   Cyberdrow    17 年前

        2
  •  0
  •   Andrew Stein    16 年前

        3
  •  0
  •   masta    15 年前

    for K in /etc/rc2.d/K* ; do test -a $K && echo heck-yea ; done
    

        4
  •  0
  •   Arnab Nandy    10 年前

    /usr/bin/test