linux
  • bash
  • scripting
  • escaping
  • 2017-10-06 2 views 1 likes 
    1

    하나의 변수에 많은 jvm 매개 변수를 전달하고이를 내보내고 다른 스크립트를 호출하려고합니다. 그러나 매개 변수에 공백이 없습니다. ("/ 05 ABCDEF")Bash는 스크립트에서 따옴표와 공백이있는 변수를 내보내고 사용합니다.

    내 코드 :

    #!/bin/bash 
    NORMAL_VARIABLE=-DNORMAL.NormalText=normal124 
    PROBLEMATIC_VARIABLE='-DPROBLEM.ProblematicText="/05 abcdef"' 
    SUM="$NORMAL_VARIABLE $PROBLEMATIC_VARIABLE" 
    export SUM 
    

    대상 스크립트 :

    java $SUM -jar "ApacheJMeter.jar" "[email protected]" 
    
    디버그 모드에서

    실제 출력 :

    + NORMAL_VARIABLE=-DNORMAL.NormalText=normal124 
    + PROBLEMATIC_VARIABLE='-DPROBLEM.ProblematicText="/05 abcdef"' 
    + SUM='-DNORMAL.NormalText=normal124 -DPROBLEM.ProblematicText="/05 abcdef"' 
    + export SUM 
    + java -DNORMAL.NormalText=normal124 '-DPROBLEM.ProblematicText="/05' 'abcdef"' -jar ApacheJMeter.jar 
    Error: Could not find or load main class abcdef" 
    

    누구나하는 방법에 대한 아이디어를 가지고 그것을 해결할 수 있습니까? 당신이 떠들썩한 파티를 사용하는 경우, 당신은 배열을 사용할 수 있습니다

    java -DNORMAL.NormalText=normal124 -DPROBLEM.ProblematicText="/05 abcdef" -jar ApacheJMeter.jar 
    
    +0

    에 오신 것을 환영합니다 스택 오버플로합니다. 그것은 경로인가/05 abcdef인가? 또는 05 디렉토리 등에서 abcdef라는 파일을 보았습니다. 오류 메시지에서 abcdef 클래스를 찾을 수 없다는 것을 알 수 있었기 때문에 나를 똑같이 알게되었습니다. – RavinderSingh13

    +0

    안녕하세요! "/ 05 abcdef"는 매개 변수의 값입니다. 문제 마녀 호출 자바 : '자바 -DNORMAL.NormalText = normal124 '-DPROBLEM.ProblematicText ='/ 05 'ABCDEF' " '-jar ApacheJMeter.jar' 대신 : '자바 -DNORMAL.NormalText = normal124 -DPROBLEM.ProblematicText = "/ 05 abcdef"-jar ApacheJMeter.jar' –

    답변

    1

    :

    나는 싶어.

    #!/bin/bash 
    NORMAL_VARIABLE=-DNORMAL.NormalText=normal124 
    PROBLEMATIC_VARIABLE=-DPROBLEM.ProblematicText="/05 abcdef" 
    SUM=($NORMAL_VARIABLE "$PROBLEMATIC_VARIABLE") 
    

    그리고

    java "${SUM[@]}" -jar "ApacheJMeter.jar" "[email protected]" 
    
    +0

    'PROBLEMATIC_VARIABLE'에 대한 배열의 이점은 무엇입니까? 그것은 작은 따옴표 안에있는 문자열이라면 똑같이 작동하는 것처럼 보입니다. –

    +0

    @TomFenech : True, fixed. – choroba

    +0

    작은 따옴표가 필요하다고 생각합니다. 그렇지 않으면 큰 따옴표가 구문 적입니다. –

    관련 문제