みなさん、アロハ。
GeekTool で使用したい小さな bash シェル スクリプトを作成しましたが、iMac (11,1) と MacBook Pro (8,3) で同じスクリプトを使用して異なる結果を経験しました。networksetup と system_profiler の両方を使用してネットワーク データをプルしています。これまでのところ、両方へのいくつかの呼び出しがありますが、スクリプトで使用する変数を作成する各プロセスへの 1 つの呼び出しに統合したいと考えています。これまでの私のスクリプトは次のとおりです。
# Get Ethernet and Wi-Fi information and display it for GeekTool
WiFi=$(networksetup -getairportnetwork en1 | awk '{print $4 " " $5 " " $6 " " $7 " " $8}')
WiFi_IP=$(networksetup -getinfo Wi-Fi | grep -v IPv6 | awk '/IP address/ {print $3}')
SubMask=$(networksetup -getinfo Wi-Fi | awk '/Subnet mask/ {print $3}')
S2N=$(system_profiler SPAirPortDataType | awk '/Noise/ {print $4 " " $5 " " $6 " " $7 " " $8}')
TRate=$(system_profiler SPAirPortDataType | awk '/Rate/ {print $3 " Mbps"}')
echo -e "\033[4;33m" AirPort
if [ "$WiFi_IP" = "" ];
then echo "Not connected to wireless AP."
else echo -e "Wi-Fi AP: " $WiFi "\nIP Address: " $WiFi_IP "\nSubnet Mask: " $SubMask "\nTransmit Rate: " $TRate
fi
EthIP=$(networksetup -getinfo Ethernet | grep -v IPv6 | awk '/IP address/ {print $3}')
EthSubMask=$(networksetup -getinfo Ethernet | grep -v IPv6 | awk '/Subnet mask/ {print $3}')
echo -e "\033[4;33m" "\nEthernet"
if [ "$EthIP" = "" ];
then echo "Not connected to wired network."
else echo -e "IP Address: " $EthIP "\nSubnet Mask: " $EthSubMask
fi
GeekTool でシェルを作成し、スクリプトへのパスを入力すると、MacBook Pro ではすべて正常に動作しますが、iMac では、GeekTool は一度結果を正常に表示し、その後リフレッシュすると (15 秒に設定しました)、結果消えて画面に戻りません。私が持っているものが機能することはわかっていますが、両方のプロセスへの呼び出しが多すぎるため、プロセスごとに1つの呼び出しに統合して、目的の情報にアクセスできる配列などのコンテナーに目的の情報を抽出したいと考えています。
つまり、networksetup を 1 回呼び出すだけで、-getairportnetwork en1 と -getinfo Wi-Fi、および system_profiler SPAirPortDataType の両方から収集されたすべての情報を取得する方法を知っている人はいますか?時間)?