Как вы помещаете результаты в одну строку? (В баш)
Итак, я создал этот файл, и в настоящее время я запускаю его в оболочке bash, и он хорошо отображает список, однако каждый результат размещается в отдельной строке. Мне было интересно, как я мог бы сделать ту же программу, но сделать так, чтобы результаты располагались по горизонтали, один за другим.
x=0;while [ $x -le 256 ]
do
t=$(tput sgr 0);r=$(tput setaf $x);echo "${r} $x ${t}";((x=$x+1))
done
3 ответа
Как я понимаю, тебе нужно что-то вроде этого:
x=0;while [ $x -le 256 ]
do
t=$(tput sgr 0);r=$(tput setaf $x);echo -n "${r} $x ${t}";((x=$x+1))
done
Вы забыли использовать echo -n (без новой строки)
Отформатированная версия с колонками:
#!/bin/bash
t=$(tput sgr 0)
for x in {0..255}; do
printf "%s%4s${t}" "$(tput setaf $x)" $x
if [ $((x % 15)) -eq 0 ]; then echo; fi;
done
Команда echo
, добавьте новую строку автоматически. Если вы хотите напечатать вывод в одну строку, используйте printf
Command.
Чтобы изменить цвет, вы можете использовать \e, например:
echo -e "\e0;31m Your text"
Эта строка напечатает ваш текст красным цветом. Вы можете изменить номер 31.
Пытаться less -r
или же less -R
:
От less
справочная страница:
-r or --raw-control-chars
Causes "raw" control characters to be displayed. The default is to
display control characters using the caret notation; for example, a
control-A (octal 001) is displayed as "^A". Warning: when the -r
option is used, less cannot keep track of the actual appearance of the
screen (since this depends on how the screen responds to each type of
control character). Thus, various display problems may result, such as
long lines being split in the wrong place.
-R or --RAW-CONTROL-CHARS
Like -r, but tries to keep track of the screen appearance where possible.
This works only if the input consists of normal text and possibly some
ANSI "color" escape sequences, which are sequences of the form:
ESC [ ... m
where the "..." is zero or more characters other than "m". For the
purpose of keeping track of screen appearance, all control characters
and all ANSI color escape sequences are assumed to not move the cursor.
You can make less think that characters other than "m" can end ANSI
color escape sequences by setting the environment variable
LESSANSIENDCHARS to the list of characters which can end a color escape
sequence.