2014-12-05 2 views
0

groovy로 작업하는 bash 스크립트를 얻으려고합니다. 그것은 다음과 같습니다Groovy, 예기치 않은 토큰 bash

#!/bin/sh 

DIR=`pwd` 

MASTER="['master', 'localhost:8080']" 
SLAVE="['slave', 'localhost:8081']" 

gnome-terminal -e "bash -c \"cd $DIR; 
          gradle run -PappArgs=$MASTER; exec bash\"" 

gnome-terminal -e "bash -c \"cd $DIR; 
          gradle run -PappArgs=$SLAVE; exec bash\"" 

그러나 나는이 오류를 얻을 : 나는 끝내 bash는보다 다른 문자를 탈출하고 문제가 될 수 있음을 읽을

startup failed: 
    Script1.groovy: 1: unexpected token: @ line 1, column 9. 
    [master, 
      ^

을,하지만 난 고칠 수 없었다 ...

+0

'Script1.groovy' 란 무엇입니까? –

+0

공간이 MASTER/SLAVE 변수에서 제거되었거나 올바르게 더 잘 인용 할 경우 – cfrick

답변

1

MASTER 및 SLAVE 값에 대한 추가 수준의 인용이 필요합니다. 'printf'는 당신을 위해 그것을 할 수 있습니다 :

printf -v MASTER '%q' "['master', 'localhost:8080']" 
printf -v SLAVE '%q' "['slave', 'localhost:8081']" 
+0

그래서 MASTER 및 SLAVE 변수를 printf로 바꿨지 만 이제는 NullPointerException이 발생합니다. 편집 : 얻을 수 있습니다 ./start .sh : 5 : printf : 잘못된 옵션 -v이지만 쉘에서 직접 실행할 수 있습니다. 스크립트에서는 # – hboy

+0

@user1900750이 아니므로/bin/sh가/bin/bash에 대한 링크가 아닌 시스템에서 실행중인 것 같습니다. 첫 번째 줄을'#!/bin/bash '를 입력하십시오. – pjh