Cómo pegar automáticamente por encima del valor de retorno en la línea de comando

3

Estoy tratando de crear un script muy simple (.command) que básicamente cambiaré mi dirección mac ... sé que el comando: openssl rand -hex 6 | sed 's/\(..\)/:/g; s/.$//' me devolverá dígitos hexadecimales aleatorios, ahora quiero que cuando se ejecute esta línea sudo ifconfig en0 ether ## la etiqueta hash reemplace los dígitos hexadecimales aleatorios que devuelto arriba.

gracias, mendel

    
pregunta Mendel 08.08.2018 - 01:49

1 respuesta

1

Estoy seguro de que esta no es exactamente la forma más elegante de hacer esto, pero funcionará lo siguiente:

MAC="$( openssl rand -hex 6 | sed 's/\(..\)/:/g; s/.$//' )" && sudo ifconfig en0 ether $MAC

Lo anterior es cómo podría hacerlo en un solo comando. Hace uso de las variables de bash. La primera parte asigna el vairable MAC a la salida de su comando de asignación al azar, luego la segunda parte inserta esta salida donde desee haciendo referencia a $MAC . Si desea integrarlo en un script de bash, puede modificarlo ligeramente como se muestra a continuación; que hace exactamente lo mismo solo en varias líneas:

#! /bin/bash

MAC="$( openssl rand -hex 6 | sed 's/\(..\)/:/g; s/.$//' )" 

sudo ifconfig en0 ether $MAC

Espero que ayude!

Saludos cordiales, Tom

    
respondido por el Tom 08.08.2018 - 02:06

Lea otras preguntas en las etiquetas