저는 bash 스크립트를 작성 중이며 상태가 오른쪽 정렬 (OK, 경고, 오류 등) 인 메시지를 같은 행에 표시하려고합니다.Bash에서 텍스트 문자열을 오른쪽 정렬 및 왼쪽 정렬하는 방법
색상이 없으면 맞춤이 완벽하지만 색상을 추가하면 올바르게 정렬 된 열이 다음 줄로 잘못 포장됩니다. 인쇄되지 않는 시퀀스 (색상 변경)을 갖는 것은 더 이상, 라인이 단축되지해야한다 - 그것은 다음 줄로 줄 바꿈 줄 이유
#!/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;
이것은 완벽하게 작동했습니다. echo -n 대신 printf를 사용하는 것에 대한 팁을 주셔서 감사합니다. –
printf에 좋은 팁. 그냥 내가 왼쪽으로 조정 된 텍스트가 필요할 때 :) – oligofren