Mathias Brodala: Linux formatierte Ausgabe

Beitrag lesen

Hallo grandfather.

$ printf "%$[$COLUMNS - 2]s\n", "[ OK ]"

Das funktioniert einwandfrei, vielen Dank dafür.

Aber wiso funktioniert das in PHP nicht?

Weil PHP üblicherweise nicht in einem Terminal agiert, die entsprechenden Funktionen wohl also eher mangelhaft umgesetzt wurden.

Wie ich herausgefunden habe ist $COLUMNS nicht gesetzt, kann das sein?
Wenn ja wiso?

Weil diese erst manuell exportiert werden muss, wie unter anderem hier beschrieben.

echo shell_exec('printf "%$[$COLUMNS - 2]s\n", "[ OK ]"');
// folgendes ergibt überhaupt keine Ausgabe
echo shell_exec('printf "${COLUMNS}"');


>   
> Kann man dieses Problem auch lösen?  
  
PHP hat übrigens sein eigenes [printf](http://de.php.net/manual/de/function.printf.php):  
  
`$ COLUMNS=$COLUMNS php -r 'printf("%" . getenv("COLUMNS") . "s\n", "[ OK ]");'`{:.language-sh}  
  
(Hierbei wird $COLUMNS nur für dieses eine Kommando temporär exportiert.)  
  
  
Einen schönen Samstag noch.  
  
Gruß, Mathias  

-- 
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)  
  
debian/rules