2016-07-21 4 views
0

나는이 bash는 스크립트가 있습니다저장 Expected_output 파일로 (버퍼) - 배쉬

#!/bin/bash 

read -p "Enter IP Address: " ip 
read -p "login: " user 
read -p "password: " password 

/usr/bin/expect<<EOF 
spawn telnet ${ip} 
expect "login" 
send "${user}\n" 
expect -re "password" 
send "${password}\n" 
expect ">" 
send "show system\r" 
expect ">" 
send "show interfaces 6/2 counters\r" 
expect ">" 
send "exit\r" 
expect ">" 
sleep 2 
exit 
EOF 

을 내가 명령은 "시스템"과 "쇼 인터페이스 6/2 카운터"에 의해 반환 된 값을 저장하기 위해 노력하고있어 내 홈 디렉토리의 Logs.txt라는 파일에 있습니다. 배쉬에서

는 나는 기대 스크립트에 내가 같은 할 수있는 방법

echo "Date creation $(date)" >> ~/ls.txt 
echo >> ~/ls.txt 
echo "show system output" >> ~/ls.txt 
echo Hello >> ~/ls.txt 
echo >> ~/ls.txt 
echo "output" >> ~/ls.txt 
echo Hello2 >> ~/ls.txt 

를 사용할 수 있습니까?

미리 감사드립니다.

편집 오버라이드가 아닌 두 개의 출력을 추가해야합니다. 당신은 같은 파일에 기록 할 수 있습니다

답변

1
set prompt "\r\n(.*?)>" 
spawn telnet ${ip} 
expect "login" 
send "${user}\r" 
expect -re "password" 
send "${password}\r" 
expect ">" 
send "show system\r" 
expect -re $prompt 
# Extracting the 1st substring 
lappend result expect_out(1,string); 
send "show interfaces 6/2 counters\r" 
expect -re $prompt 
# Extracting the 1st substring 
lappend result expect_out(1,string) 

,

set fp [open output w] 
puts $fp $result 
close $fp 
+0

덕분에 당신은, 당신의 솔루션을 시도 할 것이다 – Jigen