Алоха всем,
Я создал небольшой скрипт оболочки bash, который я хотел использовать с GeekTool, но у меня были разные результаты при использовании одного и того же скрипта на моем iMac (11,1) и MacBook Pro(8,3).Я извлекаю данные из сети, используя networksetup и system_profiler.Пока что у меня есть несколько вызовов для обоих, но я хотел бы объединить их в один вызов для каждого процесса, создавая переменные для использования в моем сценарии.Вот мой скрипт на данный момент:
# 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 с), результат исчезает и никогда не возвращается на экран.Хотя я знаю, что то, что у меня есть, работает, оно делает слишком много вызовов обоим процессам, и я хотел бы объединить его в один вызов на процесс, извлекая нужную информацию в контейнер, такой как массив, из которого я могу получить доступ к указанной желаемой информации.
Другими словами, знает ли кто-нибудь, как я могу сделать всего один звонок в networksetup, чтобы получить всю информацию, собранную как из -getairportnetwork en1 и -getinfo Wi-Fi, так и из system_profiler SPAirPortDataType (который занимает больше всего времени -около 5-8 секунд каждый раз)?