2012-12-01 5 views
0

Magento 설치 자동화에 관심이 있습니다. 나는 이것을 실현하는 단계들로 하나의 멋진 article을 발견했다. 나는 그들의 스크립트를 다운로드 및 CLI에서 실행 :bash 스크립트를 수정하는 방법은 무엇입니까?

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

과 같은 오류 얻을 : 나는 여기에 대한 책임이 코드의 일부이며, bash에 익숙하지 오전

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

을 :

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) 

해결 방법을 설명해 주시겠습니까?

+2

코드에는 아무 문제가 없습니다. 문제는 당신이 bash로 실행하지 않는다는 것입니다. – hobbs

+0

죄송합니다, 어떻게 실행하나요? –

+0

btw,'typeset'은 더 이상 사용되지 않습니다. –

답변

3

진짜 문제는 스크립트의 첫 번째 라인이다 :

#!/bin/sh

이 프로그램은 때 스크립트를 실행하는 데 사용하는 지정합니다 명령 줄에서 실행합니다 (예 : ./mage-install.sh). 작성자는 아마도 /bin/sh이 bash 설치에 대한 symlink'd 인 시스템에서이 시스템을 개발했을 것입니다.하지만 대시를 대신 사용하는 Crunchbang이있는 시스템에서는 그렇지 않습니다.

bash mage-install.sh blah blah blah을 사용하여 bash로 명시 적으로 실행하거나 실제로 첫 번째 행이 bash를 실제로 실행할 항목을 가리 키도록 변경할 수 있습니다. which bash을 사용하면 어디에 살고 있는지 알 수 있지만 안에 있어야합니다. /bin/bash

+0

이것은 정확하게 그 것이다. bash보다는 sh로 실행하십시오. –

0

I는 다음과 같이 스크립트를 실행해야합니다

bash mage-install.sh localhost root test "abcABC123" "1.7.0.2" 
+0

또는'#!/bin/bash'를'.sh' 파일의 첫 번째 줄에 추가하고'./script.sh'로 실행하십시오. – Rubens

관련 문제