Bash:文本格式

时间:2014-04-16 06:08:40

标签: linux bash shell

在我的shell脚本中,我想记录文本对齐的状态消息。例如

STATUS 1          [OK]
STATUS 2      [FAILED]
PROCESS           [OK]

我尝试使用echo -e选项\t,但我必须手动格式化对齐

[编辑]

这是我想要文本对齐的部分

if [ $? -eq 0 ];then
        echo -e "[$(date +%F_%T)] Alter table $DB.$table\t\t\t\t\t\t[OK]">>$log
        sleep 1
else
        echo -e "[$(date +%F_%T)] Alter table $DB.$table\t\t\t\t\t\t[FAIL]">>$log
        exit
fi

[溶液]

感谢@Jayesh和@evading

找到了解决方案

创建writeLog函数

function writeLog(){
    printf "%s %`expr 100 - ${#1}`s\n" "$1" "$2">>$log
}

像这样调用函数

writeLog“STATUS1”“确定”

1 个答案:

答案 0 :(得分:0)

printf "%-`expr 40 - ${#b}`s %-40s\n", $a, $b

其中a和b是变量,expr 40 - ${#b}是40长度(b)。