Obtener parte del resultado de la línea de comando en OS X

1

Me gustaría usar la siguiente línea de comando para obtener el canal actual de Wi-Fi.

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I

Me gustaría usar exactamente este comando, porque es posible que esté usando más partes del resultado. Así que necesito un AppleScript que me devuelva solo el canal actual de Wi-Fi del comando.

Estoy agradecido por cualquier ayuda. :)

    
pregunta user121028 01.07.2015 - 15:31

2 respuestas

2

Aquí hay un ejemplo en AppleScript usando la respuesta de tron_jones.

El resultado del comando se establece en _channel y luego se usa en un cuadro de diálogo solo para mostrar el resultado. Obviamente, _channel se puede usar de varias maneras.

set _channel to do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | grep 'channel:' | awk '{print $2}'"
display dialog "Wi-Fi is using Channel: " & _channel

Nota: Es posible que se deba proporcionar la ruta de acceso completamente calificada para grep y / o awk . Además, las comillas dobles alrededor de grep "channel:" fueron reemplazadas por comillas simples, por lo que el comando podría ser encapsulado entre comillas dobles para compilar debido a las comillas simples en el comando awk .

Por cierto, el comando se puede reducir a lo siguiente utilizando asteriscos ( * ) para acortar la ruta escrita al comando airport :

set _channel to do shell script "/S*/L*/P*/A*/V*/C*/R*/airport -I | grep 'channel:' | awk '{print $2}'"

Para acortar aún más la línea de comandos, gracias a bmike, en una Terminal use el siguiente comando para crear el enlace simbólico:

sudo ln -s "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport" "/usr/local/bin/airport"

Luego, como ejemplo en Terminal, todo lo que necesitas hacer es escribir: airport -I

O en un comando AppleScript usando el ejemplo anterior:

set _channel to do shell script "airport -I | grep 'channel:' | awk '{print $2}'"
    
respondido por el user3439894 01.07.2015 - 16:09
4

Recomendaría utilizar el " grep "y" awk "desde bash. Puedes usarlos para analizar los datos dados en bash. Aquí hay un ejemplo utilizando los detalles que describió anteriormente.

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | grep "channel" | awk '{print $2}'

Hazte un favor y vincula el enlace del binario a / usr / local / bin para que puedas escribir el aeropuerto (o escribirlo)

airport -I | grep "channel" | awk '{print $2}'
    
respondido por el tron_jones 01.07.2015 - 15:49

Lea otras preguntas en las etiquetas