Mark: Zeilenumbruch abhängig von Terminalfenster

Hallo,

ich führe in Perl folgenden Code in einem Perlskript unter Ubuntu aus:
print bash -c "$tool -i test.log>store.log;chmod 777 store.log";

Dieser Code speichert eine Zeile mit ungefähr 80 Zeichen in "store.log". Abhängig von der Fenstergröße des Terminals, in dem ich das Perlskript aufrufe, bricht er die Zeile in "store.log" um oder nicht. Kann man den Zeilenumbruch verhindern?

Gruß

Mark

  1. Kann ich nicht nachvollziehen:

    $tool = './foo';  
    print `bash -c "$tool -i test.log>store.log;chmod 777 store.log"`;  
    
    
    #!/usr/bin/env perl  
    print "0123456789" x 30, "\n" for 1..25;  
    
    

    Zeige deinen *ganzen* Code.

    1. Hi,

      vielen Dank erstmal für deine Antwort. Verlassen wir mal Perl und führen das Tool direkt im Terminal aus:

      $ bash -c "./tool -i test.log"

      Dies erzeugt einen direkten Output im Terminalfenster. Ist dieses kleiner in der Breite als die Länge des Outputs wird dieser umgebrochen.

      $ bash -c "./tool -i test.log>store.log"

      Schreibt den Output direkt in "store.log". Auch hier wird die Zeile in "store.log" umgebrochen, sobald das Terminalfenster zu klein ist. Maximiere ich das Terminalfenster und wiederhole genau den selben Vorgang, wird die Zeile in "store.log" nicht umgebrochen.

      Gruß

      1. Moin!

        vielen Dank erstmal für deine Antwort. Verlassen wir mal Perl und führen das Tool direkt im Terminal aus:

        $ bash -c "./tool -i test.log"

        Dies erzeugt einen direkten Output im Terminalfenster. Ist dieses kleiner in der Breite als die Länge des Outputs wird dieser umgebrochen.

        "Normal". Wenn du das Ergebnis z.B. nach "less" pipest, sollte dir für die längere Zeilen eine Scrollmöglichkeit angeboten werden können.

        $ bash -c "./tool -i test.log>store.log"

        Schreibt den Output direkt in "store.log". Auch hier wird die Zeile in "store.log" umgebrochen, sobald das Terminalfenster zu klein ist. Maximiere ich das Terminalfenster und wiederhole genau den selben Vorgang, wird die Zeile in "store.log" nicht umgebrochen.

        Das ist unnormal. Vermutlich ist dein Tool kaputt. Oder deine Shell.

        - Sven Rautenberg

        1. Moin!

          vielen Dank erstmal für deine Antwort. Verlassen wir mal Perl und führen das Tool direkt im Terminal aus:

          $ bash -c "./tool -i test.log"

          Dies erzeugt einen direkten Output im Terminalfenster. Ist dieses kleiner in der Breite als die Länge des Outputs wird dieser umgebrochen.

          "Normal". Wenn du das Ergebnis z.B. nach "less" pipest, sollte dir für die längere Zeilen eine Scrollmöglichkeit angeboten werden können.

          Jep.

          $ bash -c "./tool -i test.log>store.log"

          Schreibt den Output direkt in "store.log". Auch hier wird die Zeile in "store.log" umgebrochen, sobald das Terminalfenster zu klein ist. Maximiere ich das Terminalfenster und wiederhole genau den selben Vorgang, wird die Zeile in "store.log" nicht umgebrochen.

          Das ist unnormal. Vermutlich ist dein Tool kaputt. Oder deine Shell.

          • Sven Rautenberg

          Gut, dass mir das jemand bestätigt. Ich habe schon an mir gezweifelt. Dann schau ich mal was kaputt ist :-)

          1. Hallo,

            es hat sich geklärt. Es lag an dem Programm, dass aufgerufen wurde. Das ermittelt die Terminalbreite und setzt davon abhängig Zeilenumbrüche :-)

            Gruß