GNU/Linux >> Znalost Linux >  >> Linux

Jak vymažu tištěné znaky v konzolové aplikaci (Linux)?

Myslím, že se za výběr jazyka nemusíte omlouvat. PHP je skvělý jazyk pro konzolové aplikace.

Vyzkoušejte toto:

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

"\r" přepíše řádek novým textem. Chcete-li vytvořit nový řádek, stačí použít "\n", ale hádám, že to už víte.

Snad to pomůže! Vím, že to funguje v Linuxu, ale nevím, jestli to funguje ve Windows nebo jiných operačních systémech.


Chcete-li vymazat dříve vytištěný znak, máte tři možnosti:

  • echo chr(8) . " "; opakuje znak zpět a přesune kurzor zpět o jedno místo a mezera pak znak přepíše. Můžete použít chr(8) vícekrát za sebou pro posun o několik znaků zpět.

  • echo "\r"; vrátí kurzor na začátek aktuálního řádku. Nyní můžete řádek nahradit novým textem.

  • Třetí možností je nastavit řádek a sloupec pozice kurzoru pomocí kódů escape ANSI a poté vytisknout náhradní znaky. Nemusí fungovat se všemi terminály:

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

\r udělal trik.

Pro budoucí použití, \b nefunguje v PHP v Linuxu. Byl jsem zvědavý - tak jsem udělal pár experimentů i v jiných jazycích (tohle jsem dělal v Linuxu - nevím, jestli bude výsledek stejný ve Windows/Mac)..

\b Funguje v...

  • Perl
  • Ruby
  • Tcl – s kódem puts -nonewline "Hello\b"

\b Nefunguje v

  • PHP – kód print "Hello\b"; vytiskne Hello\b
  • Python – kód print "Hello\b" vytiskne Hello<new line> . Stejný výsledek s print "Hello\b",

Linux
  1. Jak vymazat historii příkazového řádku BASH v Linuxu

  2. Jak nainstalovat aplikaci Spotify na Linux

  3. Jak restartovat Linux pomocí příkazového řádku

  1. Jak vypnout nebo restartovat Linux pomocí příkazového řádku

  2. Vymazat aktuální vytištěný řádek konzoly

  3. Jak změnit mapu kláves konzole v Linuxu?

  1. Jak tisknout názvy linuxových skupin na více řádcích namísto jednořádkového výstupu

  2. Jak psát speciální znaky v Linuxu?

  3. jak vložit nový řádek, pokud má řádek více než 60 znaků