Лямбда-псевдоним в Xon.sh и трубы

Почему этот код не работает так же.

samuel@corny ~ $ echo "pippo\npluto\nminnie\ntopolino" | @(lambda a,s=None: s.read())                                 
pippo
pluto
minnie
topolino

Вторая команда

samuel@corny ~ $ echo "pippo\npluto\nminnie\ntopolino" | @(lambda a,s=None: s.readlines())                            
pippo
pluto

Неправильно ли чтение строки Python для чтения строка за строкой входной канал.

Моя версия Xon.sh - 0.7.8

1 ответ

Так что это несколько неуловимо, но вызываемые псевдонимы (лямбды которых относятся к одному типу) имеют несколько разных типов объектов, которые они могут вернуть. Одним из которых является кортеж (stdout, stderr, returncode),

str.readlines() Метод возвращает список, который в этом случае ['pippo\n', 'pluto\n', 'minnie\n', 'topolino\n'], Так вот,

  • stdout = "pippo\n"
  • stderr = "pluto\n"
  • returncode никогда не печатается, но бывает "minnie\n" Вот

Это, вероятно, не предполагаемое поведение и именно поэтому первый пример работает.

Другие вопросы по тегам