Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.
Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux
Moderator: Moderatoren
OsunSeyi
Hacker
Beiträge: 373 Registriert: 27. Mai 2006, 01:28
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:
soll absolut nichts machen ausser natürlich 'x' ausgeben.
Was muss 'script' enthalten?
OsunSeyi
Hacker
Beiträge: 373 Registriert: 27. Mai 2006, 01:28
Beitrag
von OsunSeyi » 21. Dez 2018, 12:58
Danke!
funktioniert
-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
Beiträge: 5505 Registriert: 23. Sep 2008, 17:09
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.
OsunSeyi
Hacker
Beiträge: 373 Registriert: 27. Mai 2006, 01:28
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:
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:
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.
abgdf
Guru
Beiträge: 3350 Registriert: 13. Apr 2004, 21:15
Beitrag
von abgdf » 21. Dez 2018, 18:18
OsunSeyi hat geschrieben: ↑ 21. Dez 2018, 12:58
Danke!
funktioniert
-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
Beiträge: 586 Registriert: 23. Jun 2008, 20:51
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
OsunSeyi
Hacker
Beiträge: 373 Registriert: 27. Mai 2006, 01:28
Beitrag
von OsunSeyi » 21. Dez 2018, 21:46
Vielen Dank allerseits und ein schönes Fest!
@abgdf: ja, mit an Sicherheit grenzender Vermutlichkeit...
uhelp
Member
Beiträge: 115 Registriert: 25. Nov 2012, 19:33
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.