Seite 1 von 1

script, was nur durchleitet

Verfasst: 21. Dez 2018, 11:17
von OsunSeyi
Hi,

Habe hier ein script, was in vielen anderen scripten mittels pipe integriert ist, aber auf dieser Maschine nicht mehr arbeiten soll. Aus Kompatibilitätsgründen soll es aber erhalten bleiben.

Also:

Code: Alles auswählen

echo 'x' | script
soll absolut nichts machen ausser natürlich 'x' ausgeben.
Was muss 'script' enthalten?

Re: script, was nur durchleitet

Verfasst: 21. Dez 2018, 12:14
von Gräfin Klara

Code: Alles auswählen

#!/bin/bash

read -r
echo $REPLY
exit 0
Nicht getestet

Re: script, was nur durchleitet

Verfasst: 21. Dez 2018, 12:58
von OsunSeyi
Danke!
funktioniert :thumbs:
-r do not allow backslashes to escape any characters
habe ich so gelassen, aber warum benutzt Du die Option?

PS:
Funktioniert für mich nicht, weil 'cat file | script' nur die erste Zeile von "file" ausgibt!
Es sollte halt absolut nichts machen!

Bin jetzt bei einem simplen 'cat' als einzigen Scriptinhalt gelandet, hoffe, es klappt in allen Fällen!

Re: script, was nur durchleitet

Verfasst: 21. Dez 2018, 17:03
von josef-wien
Du widersprichst Dir:
OsunSeyi hat geschrieben:nichts machen ausser natürlich 'x' ausgeben
...
weil 'cat file | script' nur die erste Zeile von "file" ausgibt
...
absolut nichts machen
OsunSeyi hat geschrieben:echo 'x' | script
...
cat file | script
Wenn tatsächlich gar nichts ausgegeben werden soll, reicht sogar eine ausführbare Datei in der Länge Null, trotzdem würde ich die erste und letzte Zeile des Muster-Skripts verwenden.

Re: script, was nur durchleitet

Verfasst: 21. Dez 2018, 17:46
von OsunSeyi
Nichts macht im Sinne von unverändert durchreichen...
sonst könnte es ja > /dev/null sein

Inhalt file:

Code: Alles auswählen

A
B
C
Inhalt utf2iso:

Code: Alles auswählen

#/bin/sh
# hier 'ausser Gefecht gesetzt', aber aus Kompatibilitätsgründen noch vorhanden

																		cat
#															 iconv -c -s -f UTF-8 -t ISO-8859-15 2>/dev/null
Ausgabe:

Code: Alles auswählen

cat file | utf2iso
A
B
C
Ist halt so, hätte ja auch ein Alias sein können, aber egal...
Auf dem anderen System, wo die Scripte auch laufen sollen, ist alles noch auf ISO.

Re: script, was nur durchleitet

Verfasst: 21. Dez 2018, 18:10
von josef-wien
echo != cat = ursprünglich etwas ganz anderes gefragt (aber Hauptsache, es funktioniert).

P. S. https://linux-club.de/forum/viewtopic.php?f=89&t=120397

Re: script, was nur durchleitet

Verfasst: 21. Dez 2018, 18:18
von abgdf
OsunSeyi hat geschrieben:
21. Dez 2018, 12:58
Danke!
funktioniert :thumbs:
-r do not allow backslashes to escape any characters
habe ich so gelassen, aber warum benutzt Du die Option?
Was würde denn passieren, wenn die Backslashes wirken würden, also ohne "-r"?
Bin jetzt bei einem simplen 'cat' als einzigen Scriptinhalt gelandet, hoffe, es klappt in allen Fällen!
Joa, das sollte gehen.

Scherzfrage: Ist das jetzt auch ein "Useless use of cat"?

Re: script, was nur durchleitet

Verfasst: 21. Dez 2018, 20:01
von Gräfin Klara
OsunSeyi hat geschrieben:
21. Dez 2018, 12:58
Funktioniert für mich nicht, weil 'cat file | script' nur die erste Zeile von "file" ausgibt!
Es sollte halt absolut nichts machen!
Ok, nun verstehe ich erst, was du mit "absolut nichts machen" meinst

Code: Alles auswählen

#!/bin/bash

while read -r; do
	echo "$REPLY"
done
exit 0
Probier das, es tut "nichts"
Alles was du hineinschiebst, das kommt auch so wieder heraus

Re: script, was nur durchleitet

Verfasst: 21. Dez 2018, 21:46
von OsunSeyi
Vielen Dank allerseits und ein schönes Fest!
@abgdf: ja, mit an Sicherheit grenzender Vermutlichkeit... :lol:

Re: script, was nur durchleitet

Verfasst: 22. Dez 2018, 14:42
von uhelp
mach es doch eleganter.
Biege einfach STDIN und STDOUT um.

Das sieht dann wenigstens gut aus (weil unverständlich).
scnr.