Demnach strace
geschieht dies, weil tput
nur versucht wird, tty-Einstellungen von stdout und stderr (fd 1 & 2) zu lesen. Da Sie stderr explizit umgeleitet haben und $( )
stdout auch umgeleitet werden, gibt tput auf.
Die beste Lösung wäre, Patches zu patchen, um stdin auch auf Vorhandensein einer tty zu überprüfen . Sie können die 2>/dev/null
Weiterleitung jedoch auch einfach entfernen, da tput cols
ohnehin keine Fehlermeldungen ausgegeben werden. (Und wenn es Fehlermeldungen ausgegeben hat, ist es am besten, auf sie zu achten.)