СТАНДАРТНЫЙ ВВОД, ВЫВОД И ОШИБКА

КОРОТКОЕ ВВЕДЕНИЕ

Я помню, когда я изучаю язык программирования, есть три типа взаимодействия: ввод, вывод и вывод ошибок. Который является то, что?

  1. Таким образом, ввод — это практически все, что мы вводим
    Например, в Linux: когда мы вводим ls до тех пор, пока не нажмем enter, все они >входы. Эти входные данные также могут быть помещены в один или несколько файлов одновременно.
  2. Вывод — это практически все, что показывает система
    Например, в Linux: после того, как мы нажмем enter для каждой команды, Linux покажет вам информацию, связанную с той командой, которую вы вводите. Затем эта информация выводится.
  3. Этот связан с выводом, но немного отличается, мы называем его ошибка.
    Система покажет вам вывод, но он не будет соответствовать нашим ожидания, из-за некоторых ошибок произошло. Сказал, что мы набираем cd в папку, на которую у нас нет прав доступа. Вы не можете, верно? Нет, терминал напечатает «отказано в доступе». Это пример ошибки.
Column 1: 3 types of interaction in Linux.
In Linux, we call it those 3 things:
1. stdin    : Standard Input
2. stdout   : Standard Output
3. stderr   : Standard Error

ПЕРЕНАПРАВЛЕНИЕ

Есть несколько символов для выполнения этих 3 взаимодействий.

Column 2: Redirect symbols.
In Linux, we call it those 3 things:
1. >   : Put input into a file and overwrite everything in that file
2. >>  : Same as point 1, but append the text
3. <   : File selected will be the input of the command
4. 2>  : Print the error to a file but overwrite the content
5. 2>> : Print the error to a file but append the content

STDIN

Как я уже говорил, это означает Стандартный ввод. Итак, все, что мы делаем в командной строке, все, что мы там набираем, является вводом. Давайте попробуем это с символами в столбце 2.

Во-первых, я запускаю echo и помещаю его в test1.xml. Затем я снова запускаю echo и помещаю его в test2.xml. Значит, в этих файлах будет 2 разных слова, верно?

Давайте запустим wc для подсчета слов в файле. И мы используем для этих файлов.
Он подсчитывает слова внутри этих файлов.

STDOUT

Если IN означает ввод, то OUT? Да, вывод. Давайте попробуем еще раз, используя Столбец 2 в качестве эталона.

Вы можете видеть, что я называю то, что находится внутри test1.xml, и это «makanjagung». Затем я вызываю команду echo и помещаю в test1.xml. Угадайте, что случилось? Содержимое перезаписывается.

Затем я снова запускаю команду wc -l, на этот раз помещая ›› в test1.xml. Результат тот же, что и в test1.xml раньше, но есть еще одна строка, показывающая результат команды wc -l.

STDERR

Как видно на первом изображении ниже, 2› заменит весь текст в файле test1xml и поместит туда ошибку.

Но на втором изображении ниже этот 2›› не перезапишет весь текст, а добавит text1.xml с ошибкой, показанной под файлом.

СИМВОЛ ТРУБЫ (|)

Символ трубы соединит вывод первой команды и обработает его второй командой.

Я пытаюсь использовать эту команду tail, которая занимает последнюю строку вывода. Как мы видим, в первой команде нет канала. Так что результат меня немного смущает. Я помещаю его в pipe и запускаю вторую команду, tail. Тада! Он показывает только последние 2 строки (с -2 в качестве аргументов tail).

ВЫВОДЫ

Эти команды будут полезны для любого вида сценариев (shell или bash), также с помощью команд такого типа гораздо проще поместить любой вывод или ошибку во многие файлы. В любом случае, хорошо провести время!