Сваки процес у Линуксу производи три тока података, стдин, стдоут и стдерр:
- стдин : Узима унос од корисника путем тастатуре
- стдоут : Приказује излаз на екрану
- стдерр : Приказује информације о грешци на екрану
Сваки ток података има нумерички ИД:
Нумерички ИД | Име |
0 | стдин |
1 | стдоут |
2 | стдерр |
Објаснимо преусмеравање мало детаљније:
Како преусмерити стандардни излаз и стандардну грешку у басху:
Да бисмо преусмерили стандардни излаз наредбе, користићемо 1 са оператором преусмеравања који је већи од знака>:
$лс 1>стдоут.тктГорња команда ће креирати датотеку и поставити стандардни излаз наредбе лс у датотеку стдоут.ткт.
Да бисте прочитали датотеку стдоут.ткт, користите:
$мачкастдоут.ткт
Стандардну грешку можемо преусмерити и на датотеку помоћу наредбе:
$мачкамифиле.ткт2>стдерр.ткт
Да бисте видели датотеку стдерр.ткт, користите:
$мачкастдерр.ткт
Уверите се да ће употреба 2 бити већа од знака>. Пошто у директоријуму нема датотеке мифиле.ткт, наредба цат ће дати грешку која ће бити додата у датотеку стдерр.ткт.
Ови стандардни излази се такође могу преусмерити једном командом, користите:
$лс 1>стдоут.ткт2>стдерр.ткт
Излаз наредбе лс бит ће написан у стдоут.ткт датотеку, али стдерр.ткт ће остати празна јер не би дошло до грешке.
Урадимо сада за стдерр.ткт:
$мачкамифиле.ткт1>стдоут.ткт2>стдерр.ткт
За читање стдерр.ткт користите доле наведену команду.
$мачкастдерр.ткт
И наравно, стдоут.ткт ће бити празан.
Закључак :
Наредба Линука након извршавања даје стандардни излаз који би могао бити успјешан излаз или излаз грешке. Уопштено, ови излази се не могу преусмерити помоћу оператора преусмеравања; морамо да користимо одређене нумеричке идентификаторе са знаком>. У овом водичу смо научили како да помоћу ових нумеричких тастера преусмеримо стандардни излаз у датотеку са примерима.