В чем разница между Printf и Echo в Bash?

Подробное описание массивов Bash Изучение

Мы можем захотеть организовать результат работы Ubuntu определенным образом. Возможно, нам следует избегать раздутых результатов и представлять информацию кратко. Также построены команды echo и printf. Printf обеспечивает создание строки форматирования и предлагает ненулевой статус выхода в случае сбоя. В то время как echo обычно выходит со статусом 0 и обычно выводит входные данные, озаглавленные символом конца строки после этого стандартного результата. «Printf» дает вам больше возможностей для формата вывода, чем «echo». В этом кратком уроке мы рассмотрим, как стилизовать результаты терминала с помощью инструкций echo и printf в системе Ubuntu 20.04 Linux.

Пример 1

Чтобы подчеркнуть и увидеть работу операторов printf и echo, давайте рассмотрим наш первый простой и легкий в использовании пример. Для этого вам нужно открыть приложение консольной оболочки. Для этого используйте «Ctrl + Alt + T» на экране рабочего стола вашей операционной системы Ubuntu 20.04 Linux. Консольное приложение откроется через несколько секунд, и для этого вам не придется долго ждать. После открытия терминала мы выполним оба оператора «printf» и «echo» по отдельности, чтобы увидеть, как они работают правильно. Итак, мы сначала попробовали «printf» в оболочке, чтобы распечатать количество символов в строке «Linux» в нашей оболочке.

Команда использовалась с флагом «-m» вместе с ключевым словом «wc». Команда указана на изображении ниже. Выполнив эту команду нажатием клавиши «Enter», мы получили в результате 5. Это означает, что «printf» содержит только 5 букв. Поскольку printf является стандартным оператором, именно поэтому он будет отображать аргументы в стандартной отформатированной форме во время управления.

printf ‘linux’ | wc -m

Давайте теперь взглянем на утверждение «эхо». Таким образом, общий синтаксис команды будет таким же, но здесь будет использоваться оператор «echo» вместо «printf». Строка, указанная в команде, также такая же. Когда мы запускаем команду на консоли, в результате отображается число 6. Почему это происходит, когда строка содержит всего 5 символов? Это связано с тем, что оператор «echo» также считает символ «новой строки» своим символом в соответствии со стандартным руководством по man-странице bash «echo». Если мы добавим пробел до или после строки, она также будет восприниматься как символ.

echo ‘linux’ | wc -m

Пример 2: Использование Printf

Давайте сначала посмотрим, как работает оператор printf в нашем новом примере. Создайте новый файл bash «test.sh» с помощью команды nano touch, за которой следует команда «nano» в оболочке. Команда nano будет использоваться для открытия файла в редакторе «Nano». После того, как файл был открыт, мы сначала добавили расширение bash в первую строку файла. Переменная str инициализирована длинным строковым значением. Мы объявили встроенную переменную «IFS», чтобы использовать пробел в качестве значения-разделителя.

Читайте также:  Стоит ли мигрировать на Magento 2?

Затем мы использовали команду «read» в следующей строке, чтобы прочитать значения строковой переменной в виде массива и сохранить их в переменной «Arr». Флаг «-ra» используется здесь специально для этой цели. После этого здесь используется оператор echo, чтобы сообщить нам размер переменной массива «Arr». Цикл «for» был инициализирован для перебора каждого слова из строковой переменной и отображения его в оболочке с помощью оператора «printf». Поскольку мы знаем, что printf не принимает следующую строку в качестве следующего символа автоматически, для этого мы использовали символ «\ n» в операторе printf. На этом цикл заканчивается, и код будет сохранен с помощью сочетания клавиш «Ctrl + S».

Чтобы увидеть результаты оператора printf, запустите файл

Чтобы увидеть результаты оператора printf, запустите файл с помощью команды «bash», чтобы он заработал. На выходе отображается размер массива, т.е. 9. После этого каждое слово строки было повторено с использованием цикла «for» и отображено на терминале отдельно в каждой следующей строке. Это было сделано с использованием символа «\ n» в предложении «printf». Иначе этого могло и не случиться.

bash test.sh

Иначе этого могло и не случиться.

Пример 3: Использование эха

В этом новом примере мы проиллюстрируем работу оператора «echo» в сценарии bash. Итак, мы открыли тот же самый файл «test.sh» с помощью команды «nano» в консоли оболочки. Файл открывается в редакторе nano. Весь код остался без изменений, т.е. поддержка bash, строка «str», переменная IFS, операторы чтения и циклы «for». Единственное изменение, которое вам нужно сделать, это: заменить слово «printf» на ключевое слово «echo» в сценарии bash.

Вы можете видеть, что мы также добавили «\ n» в оператор «echo», чтобы перейти на новую строку. Как мы все знаем, оператор «echo» всегда рассматривает новую строку как дополнительный символ; следовательно, он не будет форматировать вывод как таковой.

Вы можете видеть, что мы также добавили

Запустим код, чтобы увидеть результаты. Вместо того, чтобы создавать пробел в 1 новую строку, оператор echo рассматривает «\ n» как дополнительный символ. Таким образом, результат выглядит примерно так, как показано ниже.

bash test.sh

Давайте обновим код, чтобы получить требуемые результаты. Итак, после открытия файла мы удалили символ «\ n» из строки оператора echo. Сохранил код и вышел из файла.

Читайте также:  Как настроить authorized_keys SSH в Ubuntu?

Итак, после открытия файла мы удалили символ

После запуска обновленного кода на этот раз мы снова получили размер массива строк как «9». После этого все слова массива отображались отдельно, каждое на следующей строке.

bash test.sh

Заключение

Это руководство содержит более одного примера, чтобы проиллюстрировать функциональность и различие операторов «printf» и «echo». Предпочитайте использовать оператор «printf» в bash, потому что он более стандартизирован, поскольку «echo» ведет себя по-разному на других платформах.

Оцените статью
bestprogrammer.ru
Добавить комментарий