linux shell script 에서 파라미터 받기 질문

h2ogid의 이미지

자바 초짜입니다.

아래 소스와 같이

Scanner 로 경로및 파일명을 받아서 input output을 할려고 하는데

linux shell script 에서 파라미터를 받을려고 합니다.

아래와 같이 하면

java -cp . package.test $1 $2 $3 이렇게 하면 실행이 안됩니다.

수동으로 java -cp . package.test

enter

$1 $2 $3 하면 되는데

java -cp . package.test $1 $2 $3 식으로 실행을 할려면 어떻게 해야 하나요?

public static void main(String[] args) {
 
  Scanner path_fileIinput = new Scanner(System.in); // 경로 지정 받기
 
  String overviewFile = path_fileIinput.next();
  String messagesFile = path_fileIinput.next();
  String resultFile = path_fileIinput.next();
 
  Web_os_test web_os_test = new Web_os_test();
  try {
    web_os_test.webOverview(overviewFile,tmpFile);
    web_os_test.webMessages(messagesFile,tmpFile,resultFile);
    web_os_test.fileMove(resultFile,indexFile);
 
    System.out.println("done!");
  } catch (Exception e) {
    System.out.println("다음과 같은 에러가 발생하였습니다.");
    System.err.println(e);
  }
}
김정균의 이미지

원하시는 방법으로 하려면 stdin.in을 사용할 것이 아니라 args를 사용해야 합니다.
코드를 수정하시기 싫으시다면 다음과 같이 할 수도 있을 듯 싶네요.

shell> echo "$1 $2 $3" | java -cp . package.test

단 $1, $2 등의 넘기는 변수는 공백 문자가 없어야 합니다.