Katrs Linux process rada trīs datu plūsmas: “stdin”, “stdout” un “stderr”:
- stdin: Ņem ievadi no lietotāja, izmantojot tastatūru
- stdout: Ekrānā parāda izvadi
- stderr: Ekrānā parāda informāciju par kļūdām
Katrai datu straumei ir ciparu ID:
Skaitliskais ID | Nosaukums |
0 | stdin |
1 | stdout |
2 | stderr |
Sīkāk paskaidrosim novirzīšanu sīkāk:
Kā novirzīt standarta izvadi un standarta kļūdu Bash:
Lai novirzītu komandas standarta izvadi, mēs izmantosim “1” ar novirzīšanas operatoru, kas ir lielāks par zīmi “>”:
$ ls 1> stdout.txtIepriekš minētā komanda izveidos failu un komandas “ls” standarta izvadi ievietos “stdout.txt ”fails.
Lai izlasītu “stdout.txt ”failu, izmantojiet:
$ cat stdout.txt
Mēs varam arī novirzīt standarta kļūdas uz failu, izmantojot komandu:
$ cat myfile.txt 2> stderr.txt
Lai apskatītu “stderr.txt ”failu, izmantojiet:
$ kaķu stderr.txt
Pārliecinieties, ka lietojums “2” būs lielāks par zīmi “>”. Tā kā nav “myfile.txt ”direktorijā, komanda“ cat ”radīs kļūdu, kas tiks pievienota“ stderr.txt ”fails.
Šīs standarta izejas var novirzīt ar vienu komandu, izmantojiet arī:
$ ls 1> stdout.txt 2> stderr.txt
Komandas “ls” izeja tiks ierakstīta “stdout.txtFailu, bet “stderr.txt”Paliks tukšs, jo nebūtu kļūdu.
Tagad darīsim par “stderr.txt ”:
$ cat myfile.txt 1> stdout.txt 2> stderr.txt
Izmantojiet zemāk minēto komandu, lai lasītu “stderr.txt.”
$ kaķu stderr.txt
Un, protams, “stdout.txt ”būs tukšs.
Secinājums:
Linux komanda izpildot dod standarta izvadi, kas var būt veiksmīga vai kļūdas izeja. Parasti šīs izejas nevar novirzīt, izmantojot novirzīšanas operatorus; mums jāizmanto konkrēti skaitliskie ID ar zīmi “>”. Šajā ceļvedī mēs uzzinājām, kā izmantot šos ciparu taustiņus, lai novirzītu standarta izvadi uz failu ar piemēriem.