Sto creando uno script bash e desidero visualizzare un messaggio con lo stato allineato a destra (OK, Avviso, Errore, ecc.) Sulla stessa riga.Come allineare a destra e allineare le stringhe di testo in Bash
Senza i colori, l'allineamento è perfetto, ma l'aggiunta dei colori rende la colonna giusta allineata alla riga successiva, in modo errato.
#!/bin/bash
log_msg() {
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
NORMAL=$(tput sgr0)
MSG="$1"
let COL=$(tput cols)-${#MSG}
echo -n $MSG
printf "%${COL}s" "$GREEN[OK]$NORMAL"
}
log_msg "Hello World"
exit;
Questo ha funzionato perfettamente. Grazie per il suggerimento sull'utilizzo di printf invece di echo -n. –
buon consiglio su printf. proprio quando avevo bisogno di testi aggiustati a sinistra :) – oligofren