A pipeline | és a redirection <> nem működik csak ha a shell már fut, mivel ezeket csak a parancsértelmező tudja kezelni. Hasonló probléma már volt
itt
a forumon.
A bash (majdnem ugyanúgy mint a dos/windows) támogatja a
< | > (beolvasás,átadás,kiírás) operátorokat a parancssorban. Ezek (ha más nincs megadva) az StdIn (pascal:Input) és az StdOut (pascal:Output) fájlok.
Írj egy szkriptet, amiben a szükséges parancsokat elhelyezed.
Az pascal programodból (jobb híján az Exec paranccsal, de így már a TProcess is működni fog) indítsd el a bash-t és paraméterként add meg a szkript nevét. Valahogy így:
Exec ( '/bin/bash' , 'útvonal/szkriptneve.sh' ) ;
Bash scripting Tutorial
A parancs kimenete a kimenetfájl-ba kerül:
parancs paraméter > kimenetfájl
A parancs stdin-en keresztül kapja meg a bemenetfájl tartalmát:
parancs paraméter < bemenetfájl
A parancs2 stdin-en keresztül kapja meg a parancs1 kimenetét:
parancs1 paraméter1 | parancs2 paraméter2
A bash (és általában a többi unix terminál is) további lehetőséget ad:
- a parancsok csoportosíthatók és kimenetük egyként is kezelhető
- a parancsok kimenete változóba is menthető
- a változók tartalmát egy parancs paramétereként megkaphat
- stb.
Bash manual - Pipelines
Bash manual - Process substitution
Wiki - Pipeline (Unix)
Wiki - Redirection (computing)