쉘 스크립트 내에서 호출 된 Java 애플리케이션에 사용자 입력을 제공하는 방법은 무엇입니까?

신자

Java 애플리케이션 MyApp을 내부적으로 호출하는 쉘 스크립트 인 test.sh가 있습니다.

#!/bin/bash
# Invoking MyApp
java MyApp

MyApp은 콘솔에서 2 개의 매개 변수, 사용자 이름 및 비밀번호를 읽습니다. 이 스크립트를 실행하면 사용자 이름과 비밀번호를 입력하라는 메시지가 표시되는 Java 앱이 실행됩니다.

Username: user
Password: ****

이 쉘 스크립트의 실행을 자동화하고 싶습니다. 사용자 이름과 비밀번호를 test.sh 스크립트에 매개 변수로 전달하려면 어떻게해야합니까?

내가 시도한 것 :

매개 변수가 포함 된 파일에 간접 연산자를 사용했습니다.

$ ./test.sh <input

위 방법의 단축키를 사용했습니다.

$ ./test.sh <<!
user
password
!

두 경우 모두 Console console = System.console();MyApp.java 내부 console는 null로 설정 됩니다.

추신 : 스크립트 나 Java 앱을 수정하지 않고이를 수행 할 수있는 방법을 찾고 있습니다. "아니, 이건 할 수 없어!" 또한 수용 가능한 답변입니다.

Drgabble

이 프로그램은 기대하는 인간의 콘솔 입력을 시뮬레이션 할 수 있습니다 :

#!/usr/bin/expect
spawn ./test.sh
expect "Username: "
send "user\r"
expect "Password: "
send "password\r"
interact

(이 파일을 파일에 복사 한 다음 파일을 실행하십시오. 예 ./expect_script.sh)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관