[PYTHON] Fisch löscht die nicht unterbrechende Ausgabe eines einzelnen Zeichens bei Aufforderung

Ich bin etwas misstrauisch, wie ich den Begriff Eingabeaufforderung verwenden soll.

</ i> Übersicht

Ursache unbekannt.

Wenn im Terminal eine Ausgabe vorhanden ist, beginnt die neue Eingabeaufforderung kontinuierlich am Ende der Ausgabe.

# echo -n abc
abc#
(#Ist eine Eingabeaufforderung)

Im Fall von Fisch ist die Ausgabe, wenn sie 2 Zeichen oder mehr umfasst, wie oben beschrieben. Wenn es sich jedoch um 1 Zeichen handelt, bewegt sich der Cursor möglicherweise nicht oder wird überschrieben.

# echo -n a
#
(↑ Es gibt keine Ausgabe von a)

Es kann abgefangen werden, wenn das Ergebnis als ein Zeichen am Ende mit 01 oder tf im Testcode usw. ausgegeben wird.

</ i> Überprüfungsumgebung

CentOS7

# bash -version
GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
# fish -v
fish, version 2.5.0
# python -V
Python 2.7.5
# php -v
PHP 5.4.16 (cli) (built: Nov  6 2016 00:29:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v6.0.9, Copyright (c) 2002-2016, by ionCube Ltd.
    with uopz v2.0.7, Copyright (c) 2014, by Joe Watkins <[email protected]>
    with Zend OPcache v7.0.5, Copyright (c) 1999-2015, by Zend Technologies
    with strict v0.4.1, Copyright (c) 2014, by Joe Watkins <[email protected]>
    with Suhosin v0.9.38, Copyright (c) 2007-2015, by SektionEins GmbH

</ i> Code

Das Ausführungsergebnis ist das gleiche wie das in der Übersicht beschriebene, daher wird es weggelassen.

Shell script

vanish.sh


# -Ausgabe mit der Option n zum Entfernen des nachlaufenden Zeilenvorschubs
echo -n a

PHP

vanish.php


<?php

echo 'a';

Python

vanish.py


import sys
#Python-Druck ist der Standard-Zeilenumbruch.
sys.stdout.write('a')


Gibt aus

Ich fühlte mich unwohl, als ich es mehrmals bewegte

<?php

echo 'a';
sleep(1);

Nach einer Weile von der Ausgabe bis zum Ende des Skripts wurde bestätigt, dass a ordnungsgemäß ausgegeben wurde. Wenn das Skript beendet ist, scheint es an der Eingabeaufforderung überschrieben zu werden.