• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

script, was nur durchleitet

OsunSeyi

Hacker
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:
echo 'x' | script
soll absolut nichts machen ausser natürlich 'x' ausgeben.
Was muss 'script' enthalten?
 
OP
OsunSeyi

OsunSeyi

Hacker
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!
 

josef-wien

Ultimate Guru
Du widersprichst Dir:
OsunSeyi schrieb:
nichts machen ausser natürlich 'x' ausgeben
...
weil 'cat file | script' nur die erste Zeile von "file" ausgibt
...
absolut nichts machen
OsunSeyi schrieb:
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.
 
OP
OsunSeyi

OsunSeyi

Hacker
Nichts macht im Sinne von unverändert durchreichen...
sonst könnte es ja > /dev/null sein

Inhalt file:
Code:
A
B
C
Inhalt utf2iso:
Code:
#/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:
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.
 

josef-wien

Ultimate Guru
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
 

abgdf

Guru
OsunSeyi schrieb:
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"?
 
OsunSeyi schrieb:
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:
#!/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
 
OP
OsunSeyi

OsunSeyi

Hacker
Vielen Dank allerseits und ein schönes Fest!
@abgdf: ja, mit an Sicherheit grenzender Vermutlichkeit... :lol:
 

uhelp

Member
mach es doch eleganter.
Biege einfach STDIN und STDOUT um.

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