シェルスクリプトがVPNに接続されていることを確認する

シェルスクリプトがVPNに接続されていることを確認する

ユーザーが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にはパーセント記号()があるため、%常に比較が失敗します。

関連情報