Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

test 1>2 in LPIC1

1 view
Skip to first unread message

Marco Moock

unread,
Oct 6, 2022, 9:11:22 AM10/6/22
to
Hallo zusammen,
ich gehe gerade folgendes PDF durch und mir kommt eine Sache komisch
vor.
https://learning.lpi.org/pdfstore/LPI-Learning-Material-102-500-de.pdf

Auf der PDF-Seite 136 wird folgender Befehl genannt:

test 1 > 2.

Es heißt, dass > für String-Operatoren gedacht sei. In
meinem Fall wird aber, wie von mir erwartet, die Standardausgabe in die
Datei 2 umgeleitet (da nichts rauskommt ist die Datei leer).
Ausgewertet für $? wird dann nur test 1.

Hat wer Ahnung davon und kann die Aussage von denen erklären?

PS: -lt und -gt sind mir klar, es geht nur um die Aussage im PDF.

--
Gruß
Marco

Tim Landscheidt

unread,
Oct 6, 2022, 9:30:41 AM10/6/22
to
IMHO ist da ein Fehler in den Unterlagen.

Tim

Marco Moock

unread,
Oct 6, 2022, 9:36:01 AM10/6/22
to
On Thu, 06 Oct 2022 13:30:39 +0000
Tim Landscheidt <t...@tim-landscheidt.de> wrote:

> IMHO ist da ein Fehler in den Unterlagen.

Ich werde da mal anfragen. Danke für die Rückmeldung.

--
Gruß
Marco

Christian Garbs

unread,
Oct 6, 2022, 11:17:38 AM10/6/22
to
Mahlzeit!

Marco Moock <mo...@posteo.de> wrote:

> Hallo zusammen,
> ich gehe gerade folgendes PDF durch und mir kommt eine Sache komisch
> vor.
> https://learning.lpi.org/pdfstore/LPI-Learning-Material-102-500-de.pdf
>
> Auf der PDF-Seite 136 wird folgender Befehl genannt:
>
> test 1 > 2.

Sehen wir da das gleiche PDF oder haben die das evtl. schon
korrigiert?

Seite 136 ist bei mir irgendwas mit X-Server-Konfiguration.

Wenn ich nach "test 1 > 2" suche, gibt es einen Treffer auf Seite 122.
Dort steht bei den offenen Übungen als Frage 2:

| Warum wird der Befehl test 1 > 2 entgegen allen Erwartungen als wahr
| gewertet?

Und das entspricht ja genau dem, was Du auch beschrieben hast.

Gruß
Christian
--
....Christian.Garbs....................................https://www.cgarbs.de
"Ich unterrichte in meiner Freizeit Invers-Karate: Man macht einen
Stapel aus mehreren Händen, und haut mit Ziegelsteinen drauf..."
(P. Berlich)

Stefan Kanthak

unread,
Oct 6, 2022, 11:43:51 AM10/6/22
to
"Christian Garbs" <mi...@cgarbs.de> schrieb:

> Mahlzeit!
>
> Marco Moock <mo...@posteo.de> wrote:
>
>> Hallo zusammen,
>> ich gehe gerade folgendes PDF durch und mir kommt eine Sache komisch
>> vor.
>> https://learning.lpi.org/pdfstore/LPI-Learning-Material-102-500-de.pdf

[...]

> Wenn ich nach "test 1 > 2" suche, gibt es einen Treffer auf Seite 122.
> Dort steht bei den offenen Übungen als Frage 2:
>
> | Warum wird der Befehl test 1 > 2 entgegen allen Erwartungen als wahr
> | gewertet?

AUTSCH: insbesondere durch "entgegen allen Erwartungen" wird die Fragestellung
GROEBSTER Unfug.

Stefan
--
<https://www.duden.de/rechtschreibung/Kanthaken>

Marcel Logen

unread,
Oct 6, 2022, 12:09:42 PM10/6/22
to
Marco Moock in de.comp.os.unix.shell:

>Auf der PDF-Seite 136 wird folgender Befehl genannt:
>
>test 1 > 2.

Ich habe mir das PDF jetzt nicht angesehen.

In "man bash" steht bei "test":

| Return a status of 0 (true) or 1 (false) [...]

>Es heißt, dass > für String-Operatoren gedacht sei. In
>meinem Fall wird aber, wie von mir erwartet, die Standardausgabe in die
>Datei 2 umgeleitet (da nichts rauskommt ist die Datei leer).
>Ausgewertet für $? wird dann nur test 1.

| user15@o15:~/ybtra-o15/mist$ test 1 '>' 2 ; echo "$?"
| 1

| user15@o15:~/ybtra-o15/mist$ test 1 ">" 2 ; echo "$?"
| 1

| user15@o15:~/ybtra-o15/mist$ test 1 \> 2 ; echo "$?"
| 1

| user15@o15:~/ybtra-o15/mist$ test 1 \< 2 ; echo "$?"
| 0

Marcel
--
╭─────╮ ╭────╮ ╭─╮ ╭────────╮ ..64..╭──
╰───╮ ╰─╮ ╰─╮ ╰───────────╯ │ ╭───╮ ╭──╮ ╰──╮ ╰──╮ ╭─╯
╭──╮ │ │ ╭─╯ ..26..╰─╮ ╰─╮ │ │ ╰──╮ ╰─────╮ ╰─╮ ╰──╮
│ ╰─╯ ╰──╯ ..28..╰────╯ ╰───╯ ╰────────╯ ╰─────╯

Tim Landscheidt

unread,
Oct 6, 2022, 12:44:07 PM10/6/22
to
Christian Garbs <mi...@cgarbs.de> wrote:

>> ich gehe gerade folgendes PDF durch und mir kommt eine Sache komisch
>> vor.
>> https://learning.lpi.org/pdfstore/LPI-Learning-Material-102-500-de.pdf

>> Auf der PDF-Seite 136 wird folgender Befehl genannt:

>> test 1 > 2.

> Sehen wir da das gleiche PDF oder haben die das evtl. schon
> korrigiert?

> Seite 136 ist bei mir irgendwas mit X-Server-Konfiguration.

> […]

Die /PDF-Seite/ 136? Beispielsweise Firefox will ganz beson-
ders pfiffig sein und springt bei der Eingabe 136 zu der
PDF-Seite 146, die sich dann auch tatsächlich mit der X-Ser-
ver-Konfiguration befasst.

Tim

Marco Moock

unread,
Oct 6, 2022, 2:07:10 PM10/6/22
to
Am 06.10.2022 um 17:42:39 Uhr schrieb Stefan Kanthak:

> AUTSCH: insbesondere durch "entgegen allen Erwartungen" wird die
> Fragestellung GROEBSTER Unfug.

">" und "<" werden in der Mathematik grundsätzlich als größer/kleiner
als verwendet, daher kann ich verstehen, dass Benutzer auch erwarten,
dass diese hier als Operatoren fungieren. In der Bash leiten sie aber
Datenströme und erfüllen diese Erwartungen nicht.

Marco Moock

unread,
Oct 6, 2022, 2:08:29 PM10/6/22
to
Am 06.10.2022 um 18:09:40 Uhr schrieb Marcel Logen:

> | user15@o15:~/ybtra-o15/mist$ test 1 '>' 2 ; echo "$?"
> | 1
>
> | user15@o15:~/ybtra-o15/mist$ test 1 ">" 2 ; echo "$?"
> | 1
>
> | user15@o15:~/ybtra-o15/mist$ test 1 \> 2 ; echo "$?"
> | 1
>
> | user15@o15:~/ybtra-o15/mist$ test 1 \< 2 ; echo "$?"
> | 0

Daraus schließe ich, dass man das Zeichen escapen muss, wenn man es als
größer/kleiner als nutzen will und sonst eine Umleitung der Datenströme
auslöst.

Danke für die Tests.

Marco Moock

unread,
Oct 6, 2022, 2:09:56 PM10/6/22
to
Am 06.10.2022 um 16:44:05 Uhr schrieb Tim Landscheidt:

> Die /PDF-Seite/ 136? Beispielsweise Firefox will ganz beson-
> ders pfiffig sein und springt bei der Eingabe 136 zu der
> PDF-Seite 146, die sich dann auch tatsächlich mit der X-Ser-
> ver-Konfiguration befasst.

Ich nutze xpdf und drücke "g" gefolgt von 136 und dann Enter. Das ist
die 136. Seite des PDF, die Nummer, die auf der Seite selbst steht, ist
aber 126. Das kommt daher, weil auch bei PDFs noch immer gerne die
altbackene Nummerierung wie bei Papier genutzt wird, statt der
Startseite die 1 zu geben.

Marco Moock

unread,
Oct 6, 2022, 2:11:26 PM10/6/22
to
Am 06.10.2022 um 15:17:37 Uhr schrieb Christian Garbs:

> Sehen wir da das gleiche PDF oder haben die das evtl. schon
> korrigiert?
>
> Seite 136 ist bei mir irgendwas mit X-Server-Konfiguration.

Seite 136 im PDF, nicht die Seite mit der Zahl 136 auf dem Dokument
selbst (das wäre im PDF die Seite 146).

> Wenn ich nach "test 1 > 2" suche, gibt es einen Treffer auf Seite 122.

Wirklich oder war das ein Tippfehler?

Christian Garbs

unread,
Oct 6, 2022, 2:31:42 PM10/6/22
to
Mahlzeit!

Tim Landscheidt <t...@tim-landscheidt.de> wrote:
> Christian Garbs <mi...@cgarbs.de> wrote:

>> Seite 136 ist bei mir irgendwas mit X-Server-Konfiguration.
>
>> […]
>
> Die /PDF-Seite/ 136? Beispielsweise Firefox will ganz beson-
> ders pfiffig sein und springt bei der Eingabe 136 zu der
> PDF-Seite 146, die sich dann auch tatsächlich mit der X-Ser-
> ver-Konfiguration befasst.

Der angestaubte ESR-Firefox aus Debian stable macht das komischerweise
richtig. Ich hatte extra nachgesehen und gestaunt: Die Seitenzahl im
Firefox stimmte mit der Seitenzahl auf der PDF-Seite überein. Das
hatte ich noch nie ;-)

Gruß
Christian
--
....Christian.Garbs....................................https://www.cgarbs.de
How hard can it be?

Christian Garbs

unread,
Oct 6, 2022, 2:37:09 PM10/6/22
to
Mahlzeit!

Christian Garbs <mi...@cgarbs.de> wrote:
> Tim Landscheidt <t...@tim-landscheidt.de> wrote:
>>
>> Die /PDF-Seite/ 136? Beispielsweise Firefox will ganz beson-
>> ders pfiffig sein und springt bei der Eingabe 136 zu der
>> PDF-Seite 146, die sich dann auch tatsächlich mit der X-Ser-
>> ver-Konfiguration befasst.
>
> Der angestaubte ESR-Firefox aus Debian stable macht das komischerweise
> richtig. Ich hatte extra nachgesehen und gestaunt: Die Seitenzahl im
> Firefox stimmte mit der Seitenzahl auf der PDF-Seite überein. Das
> hatte ich noch nie ;-)

Ich muss mich korrigieren (hab nochmal geguckt, mir kam das doch zu
komisch vor):

Firefox zeigt _beides_ an. Über dem PDF ist ein Text-Eingabefeld, in
dem steht "122", was mit der Seitenzahl im PDF-Dokument übereinstimmt,
direkt rechts davon steht als nicht editierbars Label "(132 of 616)".

Damit bin noch beeindruckter als vorher.

Als ich nach dem Test gesucht hatte, sprang mir wohl nur das
editierbare Textfeld mit der 122 ins Auge.

Gruß
Christian
--
....Christian.Garbs....................................https://www.cgarbs.de
FLORIDA: We count more than you do.

Martin Vaeth

unread,
Oct 7, 2022, 1:30:14 AM10/7/22
to
Marco Moock <mo...@posteo.de> schrieb:
>
> Auf der PDF-Seite 136 wird folgender Befehl genannt:
>
> test 1 > 2.

Da fehlt natürlich ein Quoten des > Zeichens.

> Es heißt, dass > für String-Operatoren gedacht sei.

Ein Bashismus:
Unter CONDITIONAL EXPRESSIONS in der bash manpage ist er
dokumentiert - anscheinend aus "Kompatibilität" mit [[ ... ]].

POSIX-kompatible shells with Bosh kennen das i.d.R. nicht.
Andere Shells wie zsh erlauben das konsequent nur innerhalb
von [[ ... ]].
Dash scheint den Bashismus grundlos übernommen zu haben.

Marcel Logen

unread,
Oct 7, 2022, 11:07:32 AM10/7/22
to
Marco Moock in de.comp.os.unix.shell:

>Am 06.10.2022 um 18:09:40 Uhr schrieb Marcel Logen:

[...]
>> | user15@o15:~/ybtra-o15/mist$ test 1 \< 2 ; echo "$?"
>> | 0
>
>Daraus schließe ich, dass man das Zeichen escapen muss, wenn man es als
>größer/kleiner als nutzen will und sonst eine Umleitung der Datenströme
>auslöst.

Ja, so meine Erfahrung damit.

Ich habe das vor einiger Zeit mal gebraucht, als ich
für ein Verzeichnis mit Dateinamen, die mit Datums-
angaben beginnen, einen Zeitpunkt ausgewählt hatte, ab
dem ich die Dateien automatisiert weiter bearbeiten
wollte.

So in etwa:

| user15@o15:~/ybtra-o15/mist/mist2$ ls -1
| 20211012a.txt
| 20211213a.txt
| 20220104a.txt
| 20220104b.txt
| 20220107a.txt
| 20220107b.txt
| 20220319a.txt
| 20220411a.txt
| 20220411b.txt
| 20220728a.txt
| 20220816a.txt
| 20221001a.txt

| user15@o15:~/ybtra-o15/mist/mist2$ for i in *txt ; do if test "$i" '>' 20220331 ; then echo "$i" ; fi ; done
| 20220411a.txt
| 20220411b.txt
| 20220728a.txt
| 20220816a.txt
| 20221001a.txt
| user15@o15:~/ybtra-o15/mist/mist2$

Marcel
--
╭────╮ ╭─────╮ ╭────╮ ╭─────╮ ╭──╮ ..50..╭─╮ ╭──────╮
╰─╮ ╰─╮ ╭────╯ │ ╰─╮ ╰────╯ ╭──╯ │ │ ╭─╯ │ ╰────╮ │
╮ │ │ ╰───╮ ╰─╮ ╰───╮..33..│ ╭─╮ │ ╰─╮ │ ╰────╮ │ │
╰──╯ ╰──────╯ ╰──────╯ ╰─╯ ╰─╯ ╰───╯ ..57..╰──╯ ╰────

Helmut Waitzmann

unread,
Oct 9, 2022, 2:30:52 AM10/9/22
to
Marco Moock <mo...@posteo.de>:

> ich gehe gerade folgendes PDF durch und mir kommt eine Sache
> komisch vor.
> https://learning.lpi.org/pdfstore/LPI-Learning-Material-102-500-de.pdf
>
> Auf der PDF-Seite 136 wird folgender Befehl genannt:
>
>
> test 1 > 2.
>
> Es heißt, dass > für String-Operatoren gedacht sei. In
> meinem Fall wird aber, wie von mir erwartet, die Standardausgabe in die
> Datei 2 umgeleitet (da nichts rauskommt ist die Datei leer).
> Ausgewertet für $? wird dann nur test 1.
>

Wenn

test 1 > 2

ein Kommando für einen zum POSIX‐Standard kompatiblen Shell sein
soll (ich habe im PDF‐Dokument jetzt nicht nachgeschaut, ob dort
von einem entsprechenden Shell die Rede ist), ist das zu
erwartende Verhalten genau so, wie du es beschreibst.

(Es sei denn, das (Anlegen und) Öffnen der Datei «2» zum
Schreiben scheitert.  Dann kommt es erst gar nicht zum Aufruf von
«test 1».)


Nebenbei:  Im Betreff hast du das Kommando


test 1>2

stehen.  Das ist im POSIX‐Standard etwas anderes:  Es ruft das
Programm «test» ohne Parameter mit an die Datei «2» geknüpfte
Standardausgabe auf.

Helmut Waitzmann

unread,
Oct 9, 2022, 2:30:53 AM10/9/22
to
Marco Moock <mo...@posteo.de>:
Jein:  Wenn ein zum POSIX‐Standard kompatibler Shell die Zeichen
«<», «|» oder «>» nackt in der Kommandozeile vorfindet, liest er
sie als Angaben, wohin oder woher Datenströme gehen bzw. kommen
sollen.  Er handelt entsprechend und entfernt diese die
Datenströme lenkenden Angaben aus der Kommandozeile, ehe sie
weiter verarbeitet wird.  Die Folge ist, dass schließlich das zu
startende simple command diese Angaben in seiner Parameterliste
nicht mehr erhält.

Wenn man das nicht will, muss man diese Zeichen einkleiden, indem
man sie mit Backslashes als Escape‐Zeichen oder Apostrophe oder
Anführungszeichen als Quote‐Zeichen schützt.  Dann haben sie
keine Datenströme lenkende Funktion und bleiben in der
Kommandozeile erhalten; was sie dann bedeuten, hängt vom zu
startenden simple command ab.

Das im POSIX‐Standard enthaltene Kommando «test» fängt mit ihnen
nichts spezielles an (Zitat aus
<https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html#top>):

Some additional primaries newly invented or from the KornShell
appeared in an early proposal as part of the conditional command
([[]]): s1 > s2, s1 < s2, str = pattern, str != pattern, f1 -nt
f2, f1 -ot f2, and f1 -ef f2. They were not carried forward into
the test utility when the conditional command was removed from
the shell because they have not been included in the test utility
built into historical implementations of the sh utility.

Das «test»‐Kommando in dem von dir genutzten Shell weicht vom
POSIX‐Standard ab.

Marco Moock

unread,
Oct 9, 2022, 2:47:49 AM10/9/22
to
Am 09.10.2022 um 01:28:11 Uhr schrieb Helmut Waitzmann:

> Wenn
>
> test 1 > 2
>
> ein Kommando für einen zum POSIX‐Standard kompatiblen Shell sein
> soll (ich habe im PDF‐Dokument jetzt nicht nachgeschaut, ob dort
> von einem entsprechenden Shell die Rede ist), ist das zu
> erwartende Verhalten genau so, wie du es beschreibst.
>
> (Es sei denn, das (Anlegen und) Öffnen der Datei «2» zum
> Schreiben scheitert.  Dann kommt es erst gar nicht zum Aufruf von
> «test 1».)
>
>
> Nebenbei:  Im Betreff hast du das Kommando
>
>
> test 1>2
>
> stehen.  Das ist im POSIX‐Standard etwas anderes:  Es ruft das
> Programm «test» ohne Parameter mit an die Datei «2» geknüpfte
> Standardausgabe auf.

Danke für die Antwort. Ob die 1 nun ein Parameter ist oder nicht, sit
hier egal, weil das eigentliche Ziel der Vergleich war. ">" leitet aber
auf jeden Fall um (hier 2x die Standardausgabe, einmal explizit und
einmal implizit).

Bisher habe ich von denen noch keine Rückmeldung zum Fehler.

0 new messages