linux expect 용법 수기
expect 를 사용 하여 자동 로그 인 을 실현 하 는 스 크 립 트 는 인터넷 에 많 지만 명확 한 설명 이 없습니다. 초보 자 들 은 보통 베 끼 고 소장 합 니 다.근 데 왜 그 랬 는 지 모 르 겠 어 요.본 고 는 가장 짧 은 예 로 스 크 립 트 의 원 리 를 설명 한다. 스 크 립 트 코드 는 다음 과 같 습 니 다: ############################################## #!/usr/bin/expect set timeout 30 spawn ssh -l username 192.168.1.1 expect "password:" send "ispass\r" interact ############################################## 1. [#!/usr/bin/expect] 이 줄 은 운영 체제 스 크 립 트 의 코드 를 셸 로 실행 하 라 고 알려 줍 니 다.이곳 의 expect 는 사실 Liux 아래 의 bash, windows 아래 의 cmd 와 같은 것 이다. 메모: 이 줄 은 스 크 립 트 의 첫 줄 에 있어 야 합 니 다. 2. [set timeout 30] 기본적으로 영 어 를 아 는 사람들 은 모두 이것 이 시간 초과 설정 이라는 것 을 안다. 지금 너 는 그의 시간 단위 가: 초 라 는 것 을 기억 하기 만 하면 된다. 3. [spawn ssh -l username 192.168.1.1] spawn 은 expect 환경 에 들 어가 야 실행 할 수 있 는 expect 내부 명령 입 니 다. expect 를 설치 하지 않 거나 기본 SHELL 에서 실행 하지 않 으 면 spawn 명령 을 찾 을 수 없습니다.그 러 니 "which spawn" 과 같은 명령 으로 spawn 명령 을 찾 지 마 세 요. windows 의 dir 는 내부 명령 입 니 다. 이 명령 은 셸 이 직접 가지 고 있 습 니 다. dir. com 이나 dir. exe 의 실행 가능 한 파일 을 찾 을 수 없습니다. 그것 의 주요 기능 은 ssh 실행 프로 세 스에 케이스 를 추가 하여 상호작용 명령 을 전달 하 는 것 이다. 4. [expect "password:"] 여기 expect 도 expect 의 내부 명령 입 니 다. 좀 어 지 럽 죠? expect 의 셸 명령 은 내부 명령 과 같 지만 하나의 기능 이 아니 라 습관 이 되 었 으 면 좋 겠 습 니 다. 이 명령 은 지난번 출력 결과 에 'password:' 가 포함 되 어 있 는 지 판단 하 는 것 입 니 다.있 으 면 바로 돌아 갑 니 다. 그렇지 않 으 면 일정 시간 을 기 다 렸 다가 돌아 갑 니 다. 여기 서 기다 리 는 시간 은 앞에서 설정 한 30 초 입 니 다. 5. [send "ispass\r"] 이것 은 바로 상호작용 동작 을 수행 하고 수 동 으로 비밀 번 호 를 입력 하 는 동작 과 같은 효 과 를 가진다. 따뜻 한 알림: 명령 문자열 의 끝 에 '\ r' 를 추가 하 는 것 을 잊 지 마 세 요. 이상 한 대기 상태 가 있 으 면 확인 해 보 세 요. 6. [interact] 실행 이 끝 난 후 대화 상 태 를 유지 하고 콘 솔 에 제어 권 을 맡 깁 니 다. 이 때 는 손 으로 작업 할 수 있 습 니 다. 이 로그 인 이 완료 되 지 않 으 면 원 격 터미널 에 있 는 것 이 아니 라 종료 합 니 다. 로그 인 만 하고 실행 하면 됩 니 다. \ #! / usr / bin / expect \ # 설치 경 로 를 주의 하 십시오. whereis expect 가 확실 하지 않 습 니 다. # Change a login shell to bash set user [lindex $argv 0] spawn bash $user expect "]:" send "/bin/bash " expect eof exit
PS:
my expect code:
1 #!/usr/bin/expect
2 set timeout 30
3 send "adb root\r"
4 send "adb remount\r"
5 spawn adb shell
6 expect "#"
7 send "labtool\r"
8 expect "Enter option:"
9 send "1\r"
10 expect "Enter option:"
11 send "?\r"
12 interact
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.