leí algún código en alguna parte sobre la alineación correcta del texto y tengo algunas preguntas:
PS1="`printf "%${COLUMNS}s\n" "${TEXT}"`$PS1"
- ¿Qué hacen las comillas invertidas?
- ¿Por qué hay otra PS1 al final de la línea?
Gracias por tu contribución:)
Respuesta1
Eso crea un mensaje donde tiene el justificado a la derecha $TEXT
, seguido de una nueva línea, seguido del valor anterior de $PS1
.
Las comillas invertidas son del caparazón.Sustitución de comando: el shell ejecutará el comando y sustituirá la salida del comando. Generalmente se recomienda utilizar la $(cmd)
sintaxis en lugar de la `cmd`
sintaxis.
Esa línea se puede escribir sin sustitución de comandos, usando la printf -v varname
sintaxis:
printf -v PS1 '%*s\n%s' "$COLUMNS" "$TEXT" "$PS1"