linux--사용 예상

머리말

루프, 판단 등 간단한 제어 흐름 기능을 Shell을 통해 구현할 수 있습니다. 하지만 상호 작용이 필요한 상황에서는 수동 개입이 필요하며 이때는 Expect가 사용됩니다.

예:

1. 로컬 파일을 서버에 복사합니다. 이때 아래와 같이 확인 후 비밀번호를 입력하라는 메시지가 표시됩니다(먼저 "yes"를 입력한 후 비밀번호를 입력하세요).

2. jdk 버전 설정 시 sudo update-alternatives --config java를 사용하세요. JDK 버전을 선택하려면 아래와 같이 일련번호를 입력해야 합니다.

사용 단계:

1. Expect
        sudo apt-get install Expect 설치
2. .sh 접미사를 사용하여 파일 생성
3. 파일을 편집하고 파일 시작 부분에 선언하여 예상대로 스크립트에서 사용하는 셸 인터프리터 유형을 식별합니다:
        #! /usr /bin/expect
4. 수신 파일이 실행되면 명령줄은 매개변수를 전달하고 변수를 정의합니다.
        set jdk_command [linindex $argv 0]
        set jdk_version [linindex $argv 1]
5. generate를 사용하여 명령을 실행합니다.spawn
        sudo update -alternatives --config $jdk_command
6. 상호 작용이 시작됩니다. 대화형 프롬프트 줄을 확인합니다.
        "type Selection number:"를 예상합니다.
7. 대화형 줄에
        send "$jdk_version\r"을 입력합니다
. 8. 이 상호 작용을 종료합니다.
        eof를 예상합니다 .

추천

출처blog.csdn.net/xch622114/article/details/131330176