我对Magento安装的自动化感兴趣。我发现了一个很好的article步骤,如何实现这一目标。我下载了他们的脚本并从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 )
你能解释一下如何解决它吗?
答案 0 :(得分:3)
真正的问题在于脚本的第一行:
#!/bin/sh
这指定在命令行(即./mage-install.sh
)上运行脚本时用于执行脚本的程序。编写者可能是在/bin/sh
与他们的bash安装符号链接的系统上开发的,但在许多系统上情况并非如此(例如我有使用破折号的Crunchbang)。
您可以使用bash mage-install.sh blah blah blah
使用bash显式运行它,也可以将第一行更改为指向实际运行bash的内容。您可以使用which bash
查看其所在位置,但应该位于/bin/bash
答案 1 :(得分:0)
我应该像这样运行脚本:
bash mage-install.sh localhost root test "abcABC123" "1.7.0.2"