Java의 출력 캡처

Java의 출력 캡처

나는 이것을하려고 노력하고 있습니다 :

#!/bin/bash
set out=$(java -jar -Xmx1024m myJava.jar '$1' '$2' '$3' '$4')

echo "$out"
python myPython.py $out

하지만 성공하지 못했습니다... 매개 변수에 공백이 있기 때문에 따옴표를 사용하거나 사용하지 않고 시도했습니다. 내 $out은 여전히 ​​비어 있습니다. 프롬프트에서 이 작업을 수행하면 정상적으로 작동합니다.

$ out=$(java -jar -Xmx1024m ./myJava.jar "my first arg" "the second" "16/08/2018" "today")
$ echo $out 
0.0713471058122825407821210319525562226772308349609375;-0.113426821667920230130022218872909434139728546142578125;-0.07482244404633091316991766461796942166984081268310546875;-0.00013298701298701301443637434740452363257645629346370697021484375;-0.00013298701298701301443637434740452363257645629346370697021484375;0;0;-0.06257619772167842542298643593312590382993221282958984375;-0.0012893073228041856785608398894282800029031932353973388671875;-0.005419324847814057342920701643151915050111711025238037109375;-0.004168854454897620055719986709164004423655569553375244140625;-0.0490697081751974295560358996226568706333637237548828125;-0.186613852226874044060167534553329460322856903076171875;-0.07054484590055905279815107178364996798336505889892578125;0.050250353948686043992211125441826879978179931640625;0;-0.0373516921266305590432210692597436718642711639404296875;-0.2356835604020714736162034341759863309562206268310546875;-0.4285714285714286031492292750044725835323333740234375

나는 노력했다

echo java -jar -Xmx1024m myJava.jar '$1' '$2' '$3' '$4'

프롬프트에 붙여 넣으면 괜찮아 보이고 작동합니다.

내 bash 스크립트가 잘못 되었나요?

감사해요

답변1

한 가지 문제는 '$1'변수가 확장되지 않는다는 것입니다. 정말 문자 그대로의 달러 기호를 전달하시겠습니까? 그렇지 않은 경우 "$1"에는 큰따옴표로 묶어야 합니다 .

두 번째 예에서는 이를 지원하며 실제 값을 전달하면 작동합니다.

관련 정보