Выровненный по правому краю PS1 и PS1 равен самому себе?

Выровненный по правому краю PS1 и PS1 равен самому себе?

Где-то прочитал код о выравнивании текста по правому краю и у меня возникло несколько вопросов:

        PS1="`printf "%${COLUMNS}s\n" "${TEXT}"`$PS1"
  1. что делают обратные кавычки?
  2. почему в конце очереди стоит еще одна PS1?

Спасибо за ваш вклад:)

решение1

Это создает приглашение, в котором есть выровненный по правому краю символ $TEXT, за которым следует новая строка, а затем предыдущее значение $PS1.

Обратные кавычки — это ракушкиЗамена команды: оболочка выполнит команду и заменит вывод команды. Обычно рекомендуется использовать синтаксис $(cmd)вместо `cmd`синтаксиса.

Эту строку можно записать без подстановки команд, используя синтаксис printf -v varname:

printf -v PS1 '%*s\n%s' "$COLUMNS" "$TEXT" "$PS1"

Связанный контент