簡體   English   中英

linux shell腳本printf數字格式顏色

[英]linux shell script printf number format color

提前,抱歉我的英語句子。 (我英語不好)

這是來源。
我想以%d%f格式為$ {test}上色。
但是我得到一個錯誤。 無效號碼。

我想保留%d%f格式(用於逗號和point),並且還想要顏色。
請知道路。

資源

#!/bin/sh
warning_color=$(tput setaf 4) # blue
end_color=$(tput sgr0)

test="30000"
result="30000"
if [[ ${test} -gt 20000 ]]
then
  test="${warning_color}${test}${end_color}"
fi
printf "%'10d%'10d\n" "${test}" "${result}"

test="30000.13"
result="30000.13"
if [[ ${test%%.*} -gt 20000 ]]
then
  test="${warning_color}${test}${end_color}"
fi
printf "%'10.2f%'10.2f\n" "${test}" "${result}"

錯誤(錯誤消息中30000和30000.13顏色為藍色)

a.sh: line 7: printf: 30000: invalid number
     0a.sh: line 11: printf: 30000.13: invalid number
  0.00

您需要將顏色添加到格式字符串中,否則當您將顏色代碼添加到變量中時,數字不再像數字一樣浮動

例如

$ blue=$(tput setaf 4)
$ end=$(tput sgr0)
$ val1=3000
$ val2=3000.11
$ printf "$blue %10d $end\n" $val1
        3000
$ printf "$blue %10.2f $end\n" $val2
     3000.11

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM