【发布时间】:2013-07-08 13:42:41
【问题描述】:
我正在编写一个在 bash 和 ksh 中都可以工作的脚本。我有以下代码
if [ -e /bin/ksh ]; then
set -A arrayexample a b c
else
arrayexample=('a' 'b' 'c')
fi
我在 ksh 中运行时出现以下错误消息:
Syntax error at line 4:(' 不是预期的`
【问题讨论】:
-
你运行的是什么版本的 bash?
-
arrayexample=('a' 'b' 'c')应该在ksh和bash中都有效。您看到的错误似乎不是来自 shell,而是来自不支持数组的 shell。 -
@dougEfresh 版本 4.2.20
-
这应该适用于该版本。从标签中,您是否在 hp-ux 中运行它?你是如何调用这个脚本的?另外,我认为您想使用 $SHELL 或 $KSH_VERSION 或 $BASH_VERSION 变量来确定您正在运行的 shell。
-e /bin/ksh仅表示文件存在并且可执行,但并不意味着您正在运行 /bin/ ksh -
我过去读过关于 ksh 和 HP-UX 的问题。
echo ${.sh.version}是否返回一些东西,或者只是一个错误消息?如果错误消息且没有版本信息,那么您使用的是 ksh88,您必须搜索以查找服务器上是否安装了 ksh93+。祝你好运。