0

我对 Magento 安装的自动化感兴趣。我找到了一篇不错的文章,其中包含步骤,如何实现这一点。我下载了他们的脚本并从 cli 运行它:

./mage-install.sh localhost root test "abcABC123" "1.7.0.2"

并得到这样的错误:

./mage-install.sh: 21: ./mage-install.sh: Syntax error: "(" unexpected (expecting "}")

我对bash不熟悉,这里有一段代码,负责它:

compareVersions ()
{
  typeset    IFS='.'
  typeset -a v1=( $1 )
  typeset -a v2=( $2 )
  typeset    n diff

  for (( n=0; n<4; n+=1 )); do
    diff=$((v1[n]-v2[n]))
    if [ $diff -ne 0 ] ; then
      [ $diff -le 0 ] && echo '-1' || echo '1'
      return
    fi
  done
  echo  '0'
}

其中第 21 行是:

  typeset -a v1=( $1 )

你能解释一下如何解决吗?

4

2 回答 2

3

真正的问题在于脚本的第一行:

#!/bin/sh

这指定了当您在命令行上运行脚本时使用什么程序来执行脚本,即./mage-install.sh. 作者可能在一个/bin/sh符号链接到他们的 bash 安装的系统上开发了它,但在许多系统上并非如此(例如,我有 Crunchbang,它使用 dash 代替)。

您可以使用 bash 显式运行它,bash mage-install.sh blah blah blah也可以将第一行更改为指向实际运行 bash 的内容。您可以使用which bash它来查看它的位置,但它应该在/bin/bash

于 2012-12-01T09:10:58.397 回答
0

我应该像这样运行脚本:

bash mage-install.sh localhost root test "abcABC123" "1.7.0.2"
于 2012-12-01T09:08:41.637 回答