스크립트가 실행 중입니다.
#!/bin/sh
echo "Enter Server IP Address"
read IP
echo 'mypassword' | sudo -S ssh $IP </home/myscript.sh
IP 주소와 비밀번호를 수동으로 입력할 수 있도록 이를 어떻게 수정합니까?
답변1
이 read
명령은 사용자에게 입력하라는 메시지를 표시하며 해당 입력은 변수에 저장될 수 있습니다. 이는 스크립트의 3번째 줄에서 볼 수 있습니다 read IP
. 따라서 다른 변수를 받으려면 read
다른 변수가 필요합니다.
깔끔한 제안:
#!/bin/sh
read -p "Enter Server IP Address: " IP
read -s -p "Enter your Password: " PASSWORD
echo "$PASSWORD" | sudo -S ssh $IP </home/myscript.sh
-p
명령에서 대리인 프롬프트를 읽고 입력을 수락하기 전에 메시지를 출력할 수 있습니다. 이렇게 하면 -s
사용자의 입력이 표시되지 않아 뒤에 있는 사람들이 입력한 내용을 볼 수 없습니다.
답변2
사용자에게 비밀번호를 묻는 메시지를 표시할 수 있습니다.
#!/bin/sh
printf "Enter Server IP Address: "
read IP
printf "Enter Server Password: "
read -s PASSWORD
echo "$PASSWORD" | sudo -S ssh $IP
참고: -s
의 옵션은 read
사용자 입력을 반영하지 않습니다. 따라서 다른 사람이 자신의 단말기를 볼 수 있다는 걱정 없이 비밀번호를 입력할 수 있습니다.
또는 명령줄 매개변수를 통해 입력하세요.
#!/bin/sh
usage() {
echo "$0 [IP] [PASSWORD]"
exit 1
}
if [ $# -eq 2 ]; then
IP=$1
PASSWORD=$2
else
usage
fi
echo "$PASSWORD" | sudo -S ssh $IP