셸 에서 자동 으로 상호작용 하 는 방법

4150 단어 shell
첫 번 째: Here 문서 로 재 설정 을 입력 하 십시오.
재 설정 연산 자 command < < delimiter 는 매우 유용 한 명령 입 니 다. 셸 은 분계 부 delimiter 이후 같은 분계 부 이전의 모든 내용 을 입력 으로 합 니 다. 다음 분계 부 를 만나면 셸 은 입력 이 끝 났 음 을 알 수 있 습 니 다.가장 흔히 볼 수 있 는 delimiter 분계선 부 호 는 EOF 이 며, 당연히 다른 문자 로 스스로 정할 수 있다.
Here Document 는 Shell 의 특수 한 재 설정 방식 으로 입력 을 대화 식 Shell 스 크 립 트 나 프로그램 으로 재 설정 합 니 다.
그것 의 기본 형식 은 다음 과 같다.
command < 
  

delimiter (document) command。

  • delimiter , , , tab 。

  • delimiter 。

#!/bin/bash

ftp -i -n 192.168.167.187 << EOF
user hzc 123456
pwd
cd test
pwd
close
bye
EOF
    , hzc, 123456 ftp , , pwd。

: ,echo + sleep + |

    , , echo + sleep + | 。

#!/bin/bash

(echo "curpassword"
sleep 1
echo "newpassword"
sleep 1
echo "newpassword")|passwd
: passwd , curpassword,1 newpassword,1 newpassword, curpassword newpassword。

:expect

    expect ,expect , :

#!/usr/bin/expect
spawn su root
expect "password: "
send "123456\r"
expect eof
exit

xx.exp

:Here Document expect

expect < 
  

expect<    spawn sudo chown -R adminHard:adminHard $newdir
    expect {
    "*passwor*" {send "$COMPILE_SERVER_SSH_PASSWORD
" ; exp_continue}
    }

!

:expect

[set timeout 30]     
    , :    
    
[spawn ssh -l username 192.168.1.1]    

spawn command fork command , ;   

spawn expect expect , expect SHELL spawn 。 “which spawn“ spawn 。 windows dir , shell , dir.com dir.exe 。    

    ssh , 。   
   
[expect "password:"]   
    expect expect , ,expect shell , , 。 “password:” , , , 30    
   
[send "ispass\r"]   
    , 。   
    : “\r”, 。   
   
[interact]    

    , , 。 , 。 , [expect eof]

expect “-c” , , :

expect -c '
        spawn git pull
        expect {
        "Usernam*" {send "[email protected]
"; exp_continue }
        "Passwor*" {send "$GIT_CODE_PASSWORD
" ; exp_continue}
        }
        '

좋은 웹페이지 즐겨찾기