Где-то прочитал код о выравнивании текста по правому краю и у меня возникло несколько вопросов:
PS1="`printf "%${COLUMNS}s\n" "${TEXT}"`$PS1"
- что делают обратные кавычки?
- почему в конце очереди стоит еще одна PS1?
Спасибо за ваш вклад:)
решение1
Это создает приглашение, в котором есть выровненный по правому краю символ $TEXT
, за которым следует новая строка, а затем предыдущее значение $PS1
.
Обратные кавычки — это ракушкиЗамена команды: оболочка выполнит команду и заменит вывод команды. Обычно рекомендуется использовать синтаксис $(cmd)
вместо `cmd`
синтаксиса.
Эту строку можно записать без подстановки команд, используя синтаксис printf -v varname
:
printf -v PS1 '%*s\n%s' "$COLUMNS" "$TEXT" "$PS1"