0 votos

el resultado devuelve sólo una nueva línea \n no lo que se imprime después de ejecutar el comando

En última instancia estoy tratando de atrapar algunos errores que están apareciendo pero no están siendo devueltos.

Este es el comando que intento ejecutar.

/usr/bin/dscl . -change /Users/admin NFSHomeDirectory /Users/admin /var/admin

cuando se ejecuta correctamente devuelve \n cuando aparece un error me sale \n y

<main> attribute status: eDSAttributeNotFound
<dscl_cmd> DS Error: -13134 (eDSAttributeNotFound)

Sé por qué estoy recibiendo el error y en realidad estoy haciendo que suceda intencionalmente para que pueda (con suerte) conseguir terminal para escribir las dos líneas siguientes a un archivo o (eventualmente) enviarlo usando CURL a otro equipo.

Así que cuando ejecuto el comando con cualquiera de los dos > tomytextfile.txt escribe un archivo vacío o el uso de mi solicitud POST así

echo "result=`/usr/bin/dscl . -change /Users/admin NFSHomeDirectory /Users/admin /var/admin`" | curl --data-urlencode result@- http://172.16.26.251:8080/script

Obtengo esto como respuesta en el servidor donde estoy enviando la petición curl POST.

{ result: 'result=\n' }

Si alguien tiene alguna idea estaría super agradecido.

1voto

David Anderson Puntos 2189

Puede intentar sustituir > tomytextfile.txt con > tomytextfile.txt 2>&1 .

Del mismo modo, podría utilizar lo que se muestra a continuación.

echo "result=`/usr/bin/dscl . -change /Users/admin NFSHomeDirectory /Users/admin /var/admin 2>&1`" | curl --data-urlencode result@- http://172.16.26.251:8080/script

Básicamente, 2>&1 redirige la salida de error a la salida normal.

0 votos

Sí, funcionó a las mil maravillas. Muchas gracias por su ayuda.

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