Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

script, was nur durchleitet

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Benutzeravatar
OsunSeyi
Hacker
Hacker
Beiträge: 373
Registriert: 27. Mai 2006, 01:28

script, was nur durchleitet

Beitrag von OsunSeyi » 21. Dez 2018, 11:17

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?

Werbung:
Gräfin Klara
Hacker
Hacker
Beiträge: 381
Registriert: 23. Jun 2008, 20:51

Re: script, was nur durchleitet

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

Code: Alles auswählen

#!/bin/bash

read -r
echo $REPLY
exit 0
Nicht getestet

Benutzeravatar
OsunSeyi
Hacker
Hacker
Beiträge: 373
Registriert: 27. Mai 2006, 01:28

Re: script, was nur durchleitet

Beitrag von OsunSeyi » 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?

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
Ultimate Guru
Beiträge: 5257
Registriert: 23. Sep 2008, 17:09

Re: script, was nur durchleitet

Beitrag von josef-wien » 21. Dez 2018, 17:03

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.

Benutzeravatar
OsunSeyi
Hacker
Hacker
Beiträge: 373
Registriert: 27. Mai 2006, 01:28

Re: script, was nur durchleitet

Beitrag von OsunSeyi » 21. Dez 2018, 17:46

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.

josef-wien
Ultimate Guru
Ultimate Guru
Beiträge: 5257
Registriert: 23. Sep 2008, 17:09

Re: script, was nur durchleitet

Beitrag von josef-wien » 21. Dez 2018, 18:10

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
Guru
Beiträge: 3176
Registriert: 13. Apr 2004, 21:15

Re: script, was nur durchleitet

Beitrag von abgdf » 21. Dez 2018, 18:18

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"?

Gräfin Klara
Hacker
Hacker
Beiträge: 381
Registriert: 23. Jun 2008, 20:51

Re: script, was nur durchleitet

Beitrag von Gräfin Klara » 21. Dez 2018, 20:01

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

Benutzeravatar
OsunSeyi
Hacker
Hacker
Beiträge: 373
Registriert: 27. Mai 2006, 01:28

Re: script, was nur durchleitet

Beitrag von OsunSeyi » 21. Dez 2018, 21:46

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

uhelp
Member
Member
Beiträge: 115
Registriert: 25. Nov 2012, 19:33

Re: script, was nur durchleitet

Beitrag von uhelp » 22. Dez 2018, 14:42

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

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

Antworten