Portál AbcLinuxu, 10. května 2025 04:42
cat > tmp_souborStandardní vstup, výstup a jejich směrování
Díky za reakci, ano takhle to mi to funguje, ale v případě že se mi na vstupu objeví třeba
cat >Pokus <<EOF
ahoj1
ahoj2
ahoj3
EOF
V tomto připadě mi to vždy selže.
Pokus
zapíše ty tři řádky. Co přesně myslíš tím přesměrováním vstupu do souboru? Kde to chceš použít a co to má dělat?
Potřebuji si uložit do tmp souboru všechna data co jsou na vstupu, abych s tím mohl dále pak pracovat.To řeší
cat >tmpjako první příkaz skriptu bez ohledu na to, co je na vstupu.
Problém je že mi to funguje jen v některý případech, u již zmíněného ne.Podrobnosti?
Cat to řeší například když tam dostanu soubor nebo textový řetězec. ale když je na vstupu například
cat >Pokus <EOF
Ahoj
Hi
Cau
EOF
tak to prostě neveme.
./Program Pokus
a zůstane to vyset.
[petr@nt ~]$ cat >Pokus <<EOF > ahoj > hi > cau > EOFprogram <Pokus > Přesměruje výstup < Přesměruje vstup | Vytvoří rouru
./Program PokusAháá. Ale tady mu dáváte parametr! Pak použijte
cat "$1" >tmpa nebo (pokud i
./Program <Pokus
je správně), tak něco jako
if [ -z "$1" ]; then cat >tmp; else cat "$1" >tmp; fi
Jestli jsem to dobře pochopil, jde vám o to, že dostáváte něco na vstup programu a potřebujete to zároveň uložit do souboru. V tom případě by mělo stačit předřadit tee
:
... | program ... | tee file | program
Jestli ale chcete něco jiného, nezbyde vám asi než to napsat srozumitelně.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.