wpa_supplicant
명령줄 인터페이스를 통해 Wi-Fi 네트워크에 연결할 수 있습니다 wpa_cli
. wpa_cli
작동 모드에는 대화형 모드와 일반 모드의 두 가지가 있습니다. 일반 모드에서는 wpa_cli
필수 명령을 인수로 전달해야 합니다.
예를 들어, 네트워크에 연결하려면 루트로 다음 명령을 실행해야 합니다.
wpa_cli add_network
> 0 # this is the new network's ID
wpa_cli set_network 0 ssid '"SSID_HERE"'
wpa_cli set_network 0 psk '"PASSPHRASE_HERE"'
wpa_cli enable_network 0
이러한 모든 작업은 스크립트로 작성될 수 있습니다. 그러나 SSID와 비밀번호는 모두 작은따옴표로 이스케이프되어야 wpa_cli
합니다 set_network ssid
.set_network psk
그리고아래와 같이 큰따옴표: '"ssid"'
.
그러나 ssid를 변수 값으로 바꾸려는 경우 스크립트에서 이 이스케이프 형식을 따르기가 어렵고 wpa_cli가 OK 대신 FAIL 종료 상태를 계속 반환합니다. 다음 패턴이 시도되었습니다.
ssid '"$ssid"' # doesn't work, sets SSID to "$ssid" instead of $ssid's value
ssid \'"$ssid"\' # doesn't work
그래서 내 질문은: ssid를 스크립트의 변수에 넣고 이를 매개변수로 사용하여 wpa_cli에 SSID/비밀번호를 제공하려면 어떻게 해야 합니까?
답변1
다음 패턴이 나에게 적합하지만 안전한지 여부는 알 수 없습니다.
wpa_cli set_network 0 ssid '"'$ssid'"'
$ssid
' ' 및 ' 값만 유지하고 싶습니다 .