Jam*_*Rat 223 bash console formatting echo
我正在编写一个Bash脚本,可以在屏幕上打印一些文本:
echo "Some Text"
Run Code Online (Sandbox Code Playgroud)
我可以格式化文本吗?我想大胆一点.
psm*_*ars 394
最兼容的方法是使用tput发现正确的序列发送到终端:
bold=$(tput bold)
normal=$(tput sgr0)
Run Code Online (Sandbox Code Playgroud)
那么你可以使用变量$bold并$normal格式化事物:
echo "this is ${bold}bold${normal} but this isn't"
Run Code Online (Sandbox Code Playgroud)
给
这很大胆,但事实并非如此
avi*_*amg 47
要在字符串上应用样式,可以使用如下命令:
echo -e '\033[1mYOUR_STRING\033[0m'
Run Code Online (Sandbox Code Playgroud)
说明:
-e选项意味着将解释转义(反向)字符串可能的整数是:
Mic*_*bus 45
我假设bash正在兼容vt100的终端上运行,用户没有明确关闭对格式化的支持.
首先,echo使用-e选项打开对特殊字符的支持.之后,使用ansi转义序列ESC[1m,如:
echo -e "\033[1mSome Text"
Run Code Online (Sandbox Code Playgroud)
有关ansi转义序列的更多信息,例如:ascii-table.com/ansi-escape-sequences-vt-100.php
rou*_*tic 13
在理论上如此:
# BOLD
$ echo -e "\033[1mThis is a BOLD line\033[0m"
This is a BOLD line
# Using tput
tput bold
echo "This" #BOLD
tput sgr0 #Reset text attributes to normal without clear.
echo "This" #NORMAL
# UNDERLINE
$ echo -e "\033[4mThis is a underlined line.\033[0m"
This is a underlined line.
Run Code Online (Sandbox Code Playgroud)
但在实践中,它可能被解释为"高强度"颜色.
(来源:http://unstableme.blogspot.com/2008/01/ansi-escape-sequences-for-writing-text.html)
| 归档时间: |
|
| 查看次数: |
149811 次 |
| 最近记录: |