GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo borro caracteres impresos en una aplicación de consola (Linux)?

No creo que tengas que disculparte por la elección del idioma. PHP es un gran lenguaje para aplicaciones de consola.

Prueba esto:

<?php
for( $i=0;$i<10;$i++){
  print "$i \r";
  sleep(1);
}
?>

El "\r" sobrescribirá la línea con el nuevo texto. Para crear una nueva línea, solo puede usar "\n", pero supongo que ya lo sabía.

¡Espero que esto ayude! Sé que esto funciona en Linux, pero no sé si funciona en Windows u otros sistemas operativos.


Para borrar un carácter previamente impreso tienes tres opciones:

  • echo chr(8) . " "; hace eco del carácter posterior, y moverá el cursor hacia atrás un lugar, y el espacio sobrescribe el carácter. Puedes usar chr(8) varias veces seguidas para retroceder varios caracteres.

  • echo "\r"; devolverá el cursor al inicio de la línea actual. Ahora puede reemplazar la línea con texto nuevo.

  • La tercera opción es establecer la línea y la columna de la posición del cursor mediante códigos de escape ANSI y luego imprimir los caracteres de reemplazo. Puede que no funcione con todos los terminales:

  function movecursor($line, $column){
      echo "\033[{$line};{$column}H";
  }

\r hizo el truco.

Para referencia futura, \b no funciona en PHP en Linux. Tenía curiosidad, así que también hice un par de experimentos en otros idiomas (hice esto en Linux; no sé si el resultado será el mismo en Windows/Mac).

\b Funciona en...

  • Perl
  • Rubí
  • Tcl - con el código puts -nonewline "Hello\b"

\b No funciona en

  • PHP - el código print "Hello\b"; imprime Hello\b
  • Python - código print "Hello\b" imprime Hello<new line> . Mismo resultado con print "Hello\b",

Linux
  1. Cómo borrar el historial de línea de comandos BASH en Linux

  2. Cómo imprimir bastante el archivo JSON en la terminal de Linux

  3. Cómo instalar la aplicación Spotify en Linux

  4. Cómo imprimir nombres de grupos de Linux en varias líneas en lugar de una sola línea de salida

  5. cómo insertar una nueva línea si una línea tiene más de 60 caracteres

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

Cómo habilitar la opción "Editar" en la aplicación Shutter en Linux

Cómo bloquear sesiones de consola virtual en Linux

Cómo quitar (^M) caracteres de un archivo en Linux

Cómo encontrar las líneas más largas en un archivo en Linux

Cómo encontrar la dirección IP en la línea de comandos de Linux