在我的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”“确定”
答案 0 :(得分:0)
printf "%-`expr 40 - ${#b}`s %-40s\n", $a, $b
其中a和b是变量,expr 40 - ${#b}
是40长度(b)。