2012-06-18 4 views
0

내 펄 스크립트는 일부 파일을 다운로드하는 사용자에게 암호를 요청해야합니다 : 나는 $> ./script.pl 모든 것에 스크립트가 잘 작동 호출하면올바른 스트림은

print "Your password please: \n"; 
ReadMode('noecho'); 
$password = ReadLine(0); 
$password =~ s/\n//; 
ReadMode(0); 

system("wget --user=user --password=\"$password\" http://some.server/data.xml"); 
do_something(); 

. 그러나 출력을 $> ./script.pl > text.txt으로 파일에 파이프하려면 암호 질문이 파일에 파이프되어 ReadLine이 더 이상 작동하지 않습니다.

어떻게해야할까요?

+0

가장 쉬운 해결책은'-O text.txt'를'wget' 명령에 추가하는 것입니다. – flesk

답변

3

인쇄 STDERR에 프롬프트

키보드에서 직접 암호를 읽는에서 보안 이득이 wget에 포격에 의해 무효가됩니다
print STDERR "Your password please: "; 
0

는, 그 환경에서 암호가 시스템의 모든 사용자에 대해 분명하게 볼 수 있습니다 . 보안이 중요하지 않은 경우 프로그램을 사용자/암호로 take command-line parameters으로 다시 쓸 수 있습니다.