【问题标题】:syntax error at line 354 : `=~' unexpected in hp unix第 354 行的语法错误:`=~' 在 hp unix 中出现意外
【发布时间】:2015-02-06 23:22:08
【问题描述】:

我的代码有点像-

if [[ ! $FIRST=~ ^/ ]] then
            FIRST="${SECOND}/${FIRST}"
fi

在 HP UNIX 中运行脚本时出现以下错误 - 第 354 行的语法错误:`=~' 意外。 它似乎在 linux 中运行良好。 有人有解决办法吗?

【问题讨论】:

  • = 之前可能需要一个空格?你也在 Linux 上使用 ksh 吗?
  • 在我看来就像一个仅限 Bash 的构造。 HP-UX 系统上是否有可用的 Bash?脚本的 shebang 行是什么?
  • ksh 中没有=~(并且 HP-UX 不是 Linux)。

标签: unix ksh hp-ux


【解决方案1】:

正如 cmets 所指出的,HP-UX 上的 ksh 可能已经很老了,所以没有 =~ 运算符。

但是,您只是检查该值是否以斜杠开头,因此请使用 glob 样式的模式匹配:

if [[ $FIRST != /* ]]; then FIRST="$SECOND/$FIRST"; fi

如果那个不起作用,请使用case

case "$FIRST" in
    /*) : ;;
    *)  FIRST="$SECOND/$FIRST" ;;
esac

【讨论】:

    猜你喜欢
    • 2016-03-11
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多