![쉘 스크립트의 "pass"에서 검색된 비밀번호를 사용하는 방법](https://linux55.com/image/151407/%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98%20%22pass%22%EC%97%90%EC%84%9C%20%EA%B2%80%EC%83%89%EB%90%9C%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
사용하는 동안 비밀번호를 저장했습니다.pass
그리고 이를 바탕으로 Cisco Anyconnect를 사용하여 VPN 연결 프로세스를 자동화하려고 합니다. VPN이 잘 작동하는 것을 확인했습니다.스크립트내가 사용하려는 것은 다음과 같습니다.
pass=$(pass branch/key)
vpn -s connect vpn.server.host << "EOF"
0
username
"$pass"
y
exit
EOF
로 저장했다고 가정하면 .connectvpn
VPN source .connectvpn
터널을 시작하고 연결을 설정해야 합니다.
파일에서 사용하려는 변수( pass
)를 제거하고 실제 비밀번호를 다섯 번째 줄에 입력하면 작동한다는 것을 알 수 있습니다. 내가 겪고 있는 문제는 bash 변수 접근 방식에 있습니다.
답변1
문제는 구분 기호를 인용한다는 것입니다 "EOF"
. 여기에서 문서의 구분 기호를 인용하면 본문에서 매개변수 확장이 수행되지 않으므로 비밀번호는 리터럴 값을 갖게 됩니다 "$pass"
. EOF
따옴표 없이 구분 기호를 사용해 보세요 .