계속하려면 비밀번호를 입력해야 하는 스크립트가 있습니다.
bash-3.2$ ./script.sh <parameter_list>
Enter the password for the Database:
..
..
저는 스크립트에 암호를 안전하게 전달하면서 스크립트의 표준 출력을 로그 파일로 캡처하는 데 관심이 있습니다.
다음과 같이 표준 입력에 비밀번호를 전달해 보았습니다.
bash-3.2$ echo "<password>" > /secure/path/password.txt
bash-3.2$ ./script.sh <parameter_list> < /secure/path/password.txt
그러나 이것은 작동하지 않는 것 같습니다. 그렇다면 간단히 tee
출력을 로그 파일로 리디렉션할 수 있습니다.
답변1
내 생각에는 당신이 원하는 것 같아요 expect
. 이 도구는 사용자 입력이 필요한 명령과 대화형으로 작동할 수 있습니다. 물론 가장 큰 함정은 무엇을 해야 할지 알아야 한다는 것이다.예상되는.
예(다음에서 빌려옴http://www.thegeekstuff.com/2010/10/expect-examples/)
#!/usr/bin/expect
set timeout 20
spawn "./hello.pl"
expect "hello"
send "no match : <$expect_out(buffer)> \n"
send "match : <$expect_out(0,string)>\n"
interact
답변2
무엇에 대해
echo "password" | ./script.sh parameter_list ... > output.file
그래도 작동하지 않으면 다음 질문에 대답하십시오. 스크립트는 사용자로부터 비밀번호를 얻기 위해 어떤 메커니즘을 사용합니까? SSH 비밀번호와 같은 것이라면 stdin을 통한 전송이 작동하지 않습니다.
답변3
이것이 자신의 스크립트인 경우 대화형 출력을 stderr
.