1 votos

El comando bash funciona en Ubuntu pero no en macOS

Tengo este comando que funciona bien en Ubuntu pero en macOS me sale un error.

El comando:

 sudo $(grep -qxF '127.0.0.1        app.local' /etc/hosts || echo '127.0.0.1     app.local' >> /etc/hosts)
 

Salida:

 usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
usage: sudo [-AbEHknPS] [-C num] [-g group] [-h host] [-p prompt] [-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-C num] [-g group] [-h host] [-p prompt] [-u user] file ...
 

3voto

El comando tal como está escrito realmente no tiene sentido, la sustitución del comando siempre devolverá una cadena vacía (y la parte posterior al || fallará para los usuarios no root). Si está buscando una manera de agregar una línea a /etc/hosts si aún no hay una entrada, intente

 grep -qxF '127.0.0.1        app.local' /etc/hosts ||
    sudo sh -c "echo '127.0.0.1        app.local' >> /etc/hosts"
 

PD: confiar en la cantidad de espacios en la parte grep es pedir problemas, tal vez sea mejor usar una expresión regular en su lugar

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X