GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo engañar a un comando para que piense que su salida va a una terminal?

Dado un comando que cambia su comportamiento cuando su salida va a una terminal (por ejemplo, produce una salida coloreada), ¿cómo se puede redirigir esa salida en una canalización mientras se conserva el comportamiento cambiado? Debe haber una utilidad para eso, de la que no tengo conocimiento.

Algunos comandos, como grep --color=always , tienen banderas de opción para forzar el comportamiento, pero la pregunta es cómo solucionar los programas que se basan únicamente en probar su descriptor de archivo de salida.

Si importa, mi shell es bash en Linux.

Respuesta aceptada:

Puede obtener lo que necesita usando unbuffer .

unbuffer es un tcl / expect texto. Mira la fuente si quieres. También tenga en cuenta la sección de ADVERTENCIAS en man.

También tenga en cuenta que no ejecuta alias como:

alias ls='ls --color=auto'

a menos que uno agregue un truco como lo señaló Stéphane Chazelas:

Si haces un alias unbuffer='unbuffer ' (tenga en cuenta el espacio final), luego los alias se expandirán después de unbuffer .


Linux
  1. Cómo capturar sesiones de terminal y salida con el comando de script de Linux

  2. ¿Cómo asignar la salida de un comando a una variable de shell?

  3. ¿Terminal Ctrl+s versus Ctrl+z?

  4. ¿Cómo ocultar la salida del terminal al ejecutar un comando?

  5. ¿Cómo usar vi para editar un comando en la terminal en Linux?

Cómo habilitar la marca de tiempo en la salida del comando de historial de Linux

Cómo iniciar en la línea de comandos de Linux

Cómo grabar todo lo que haces en la terminal

Cómo redirigir la salida del comando de shell

Cómo guardar la salida del comando en un archivo usando la terminal de Linux

¿Cómo obtengo el comando superior para envolver su salida?