Показать статистику
0 голосов
от (250 баллов)
Всём привет! У меня возник такой вопрос. Команда echo после её выполнения всегда делает перевод строки. А если мне нужно, чтоб строка не переводилась и результат следующей команды был в той же строке? Как это сделать?
881 просмотров 1 ответов

1 Ответ

0 голосов
от (800 баллов)
редактировать от

Команда  echo представляет собой удобный способ вывода сообщений на экран или в лог-файл в процессе выполнения командных скриптов. 

В обычном режиме, команда echo всегда выполняет перевод строки после вывода текста на экран:

echo

Чтобы после выполнения команды echo перевод строки не выполнялся, необходимо использовать параметр -n:

echo -n "Привет, Петрович!"

echo -n

Вывод команды  echo без новой строки

В качестве примера рассмотрим цикл for в скрипте терминала, который выводит на экран содержимое массива

 

bash_array=(1 3 6 9)

for i in ${bash_array[@]}; do echo $i;

done

 

Иногда требуется напечатать результаты вывода несколько команд echo на одной строке.

Параметр -n команды echo

Стандартная реализация bash помещает в конце выходных данных символ "\n". "\n" - это экранирующий символ, который дает команду переместить каретку на новую строку.

Положим мы имеем массив содержащий цифры 3 4 5 6 7 8

bash_array =( 3 4 5 6 7 8)

for i in ${bash_array[@]} do echo -n $i

done

 Команда выведет

3 4 5 6 7 8 > приглашение командной строки

Как мы видим, теперь все цифры напечатаны в одной строке терминала, а значит перевод строки при каждом выводе команды echo не производится.

...