Програмиране на BASH

Как да пренасочим stderr към stdout в Bash

Как да пренасочим stderr към stdout в Bash
Командите в Linux вземат някакъв вход от потребителя, който може да бъде файл или някакъв атрибут и при изпълнението те дават някакъв изход, наречен стандартен изход. Стандартният изход може да бъде изход за успех или изход за грешка; и двете ще бъдат показани на вашия терминален екран. Но в някои случаи искате да съхранявате стандартни изходи във файл за тестване или отстраняване на грешки на кода. В Linux тези изходи могат да бъдат пренасочени към файл и процесът на улавяне се нарича пренасочване.

Всеки процес в Linux произвежда три потока от данни, „stdin“, „stdout“ и „stderr“:

Всеки поток от данни има цифров идентификатор:

Цифров идентификатор Име
0 stdin
1 stdout
2 stderr

Нека обясним пренасочването малко повече с подробности:

Как да пренасочим стандартния изход и стандартната грешка в Bash:

За да пренасочим стандартния изход на командата, ще използваме „1“ с оператор за пренасочване, който е по-голям от знака „>“:

$ ls 1> stdout.текст

Горната команда ще създаде файл и ще постави стандартния изход на командата “ls” в “stdout.txt ”файл.

За да прочетете „stdout.txt ”файл, използвайте:

$ котка stdout.текст

Можем да пренасочим стандартна грешка и към файл, като използваме командата:

$ cat myfile.txt 2> stderr.текст

За да видите „stderr.txt ”файл, използвайте:

$ котка stderr.текст

Уверете се, че използването на „2“ ще е по-голямо от знака „>“. Тъй като няма „myfile.txt ”в директорията, командата“ cat ”ще даде грешка, която ще бъде добавена в“ stderr.txt ”файл.

Тези стандартни изходи могат да бъдат пренасочени с една команда също, използвайте:

$ ls 1> stdout.txt 2> stderr.текст

Резултатът от командата “ls” ще бъде записан в “stdout.текст”, Но„stderr.текст”Ще остане празно, защото няма да има грешка.

Сега нека направим за „stderr.текст":

$ cat myfile.txt 1> stdout.txt 2> stderr.текст

Използвайте споменатата по-долу команда, за да прочетете „stderr.текст.”

$ котка stderr.текст

И разбира се, „stdout.txt ”ще бъде празно.

Заключение:

Командата на Linux при изпълнение дава стандартна продукция, която може да бъде резултат за успех или грешка. По принцип тези изходи не могат да бъдат пренасочени с помощта на оператори за пренасочване; трябва да използваме конкретни цифрови идентификатори със знака „>“. В това ръководство научихме как да използваме тези цифрови клавиши, за да пренасочим стандартния изход към файл с примери.

Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...
Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...
Най-добрите игри за команден ред за Linux
Командният ред не е само най-големият ви съюзник при използване на Linux - той може да бъде и източник на забавление, защото можете да го използвате, ...