ユーザーがVPNに接続されていることを確認するためにシェルスクリプトを作成しようとしています。私はシェルスクリプトの初心者ですが、これは私のロジックです。
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
PUBLIC_IP="123.456.789.123%"
CURRENT_IP="$(curl api.ipify.org)"
現在のIPを通常のIPと比較し、一致する場合は一致する必要があり、echo "disconnected"
そうでなければecho "connected"
。
どうすればいいですか?
答え1
スクリプトで次のように書くことができます。
if [ "${CURRENT_IP}" = "${PUBLIC_IP}" ]; then
echo "disconnected"
else
echo "connected"
fi
PUBLIC_IPにはパーセント記号()があるため、%
常に比較が失敗します。