2016-08-19 17 views
0

bash는 로/Cygwin에서을 기대 PSFTP 자동화 일반 텍스트 에코 비밀번호를 기대합니다.

나는 yftp.exp 코드와 아주 최소한의 스크립트 파일이 있습니다

#!/usr/bin/expect -f 
spawn psftp unixftpsrvr 
expect "login as: " 
send "myID\r" 
expect "Password:" 
send "Passw0rd\r" 
expect "psftp>" 

출력 :
로그인으로 unixftpsrvr

$ ./yftp.exp
스폰 PSFTP : myID
키보드 대화식 인증 사용.
입력하십시오 UDS
암호 : 는 passw0rd 암호는 일반 텍스트로 출력됩니다>

원격 작업 디렉토리는/home/MYID
PSFTP!

psftp 명령을 직접 실행하면.


로그인으로

$의 PSFTP unixftpsrvr : 당신의 UDS 비밀번호 입력 MYID
:
원격 작업 디렉토리는/home/MYID
PSFTP를>

암호가 여기에 출력됩니다 전혀 표시되지 않습니다.

이것은 예상되는 측면에서 더 문제가있는 것으로 보입니다.

나는 기대하는 스크립트 파일에서 일반 텍스트로 암호를 염려하지 않으므로 암호가 일반 텍스트로 출력됩니다.

암호를 일반 텍스트로 표시하지 않으려면 어떻게해야합니까?

답변

0

ECHO가 꺼지기 전에 암호가 너무 일찍 보내질 수 있습니다. 따라서 뒤에 sleep 1을 추가하십시오.

그 같은 시도 후 작동하지 않는 경우 :

expect "Password:" 
log_user 0; # disable logging to stdout 
send "password\r" 
log_user 1 
+0

을 잠 트릭을하지 않습니다는 LOG_USER는 않습니다. 감사. – Heinz