authenticate.sh
다음과 같은 쉘 스크립트가 있습니다 .
#!/bin/bash
sshpass -p '$1' ssh $2@localhost
나는 그것을 사용하여 부른다
bash authenticate.sh password username
그런데 실행하면 "권한이 거부되었습니다. 다시 시도해 주세요"라는 메시지가 나타납니다. 내가 달리면
#!/bin/bash
sshpass -p 'password' ssh user@localhost
효과가있다...
도움이 필요하세요?
답변1
단일 아포스트로피로 인해 스크립트가 엉망이 된 것 같습니다. 아래 설명을 참조하세요.
이는 예상대로 작동합니다.
#!/bin/bash
sshpass -p "$1" ssh "$2"@localhost
이는 단일 아포스트로피로 인해 변수가 내부적으로 확장되는 것을 허용하지 않기 때문입니다.