내 원격 서버에 로그인하는 동안 사용자 입력이 필요하지만 bash_profile은 그런 방식으로 수정됩니다.
[nikhil]$ cat .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
read -p "enter your name " Name
echo $Name
SSH를 사용하여 이 원격 서버에 로그인하고 해당 입력을 스크립트를 통해 전달하려면 어떻게 해야 합니까?
답변1
설치하다 expect
:
apt-get install expect
다음 스크립트를 실행하십시오.
$ expect <<EOF
set timeout -1
spawn ssh -o "StrictHostKeyChecking=no" root@server
expect "root@server's password:"
send -- "12345678PASSWORD\r"
expect "enter your name "
send -- "susan\r"
expect "root@server"
send -- "echo $$\r"
send -- "exit\r"
expect eof
EOF
다음을 조정하십시오.
root@server
실제 서버 연결 매개변수로- 분명히 비밀번호는
.bash_profile
대상 서버 내부의 스크립트에 제공하려는 이름- 대상 서버에서 실행하려는 실제 명령( 대신
echo $$
)