zoukankan      html  css  js  c++  java
  • 4.shell的格式化输出(echo 、颜色输出)

    目录

    一、echo 输出

    二、颜色代码

    正文

    一、echo 输出

    Shell 的 echo 指令,用于字符串的输出

    语法:echo string

    echo 会将输入的字符串送往标准输出,输出的字符串之间以空白字符隔开,并在最后加上换行号

     

    1.echo 显示普通字符串

    echo 字符串,字符串可以不加双引号

    MBC02FV3MZMD6P:J_shell j$ echo hello world
    hello world
    MBC02FV3MZMD6P:J_shell j$ echo "hello world"
    hello world

    2.知识点【1】命令选项

    • -n 不要在最后自动换行
    • -e 若字符串中出现如下转移字符,则按照转义字符的意思处理
    MBC02FV3MZMD6P:J_shell j$ echo "hello world"
    hello world
    MBC02FV3MZMD6P:J_shell j$ echo -n "hello world"
    hello worldMBC02FV3MZMD6P:J_shell j$ 
    hello worldMBC02FV3MZMD6P:J_shell j$ echo -n "Login:";read
    Login:ll
    MBC02FV3MZMD6P:J_shell j$ echo -n "data:";date +%F
    data:2021-11-30
    MBC02FV3MZMD6P:J_shell j$ 

    先熟悉下面的转移字符的意思

    知识点:转义字符

    • \a  发出警告声
    • \b 删除前一个字符
    • \c  最后不加上换行符号
    • \t  tab键, 制表符
    • \n  换行且光标移至首行

    3.echo 显示转义字符(结合-e)

    \a 结合-e,发出喇叭声;不加-e就是字符串

    MBC02FV3MZMD6P:J_shell j$ echo "\a\a\a"
    \a\a\a
    MBC02FV3MZMD6P:J_shell j$ echo -e "\a\a\a"
    
    MBC02FV3MZMD6P:J_shell j$ 

    \t 插入tab键

    MBC02FV3MZMD6P:J_shell j$ echo -e "\t\t\t Title"
                 Title
    MBC02FV3MZMD6P:J_shell j$ 

    \b 删除前一个字符

    MBC02FV3MZMD6P:J_shell j$ echo -e "bc\ba"
    ba
    MBC02FV3MZMD6P:J_shell j$ 

    \c 回车不换行

    MBC02FV3MZMD6P:J_shell j$ echo -e "bc\ba\c"
    baMBC02FV3MZMD6P:J_shell j$ 

     组合举个例子:

    form_output.sh

    #!/bin/bash
      
    echo -e "\t\t\t\tMcDonald Shop"
    echo -e "\t\t1) Chicken"
    echo -e "\t\t2) Chips"
    echo -e "\t\t3) Hamburger"
    MBC02FV3MZMD6P:J_shell j$ bash form_output.sh 
                    McDonald Shop
            1) Chicken
            2) Chips
            3) Hamburger
    MBC02FV3MZMD6P:J_shell j$ echo $?
    0
    MBC02FV3MZMD6P:J_shell j$ 

    二、颜色代码

    脚本中echo现实内容带颜色显示,echo显示带颜色,需要使用参数 -e

    格式:

    echo -e "\033[子背景颜色:文字颜色 字符串\033[0m"

    举个例子:

    echo -e "\033[41;36m hello world \033[0m"

     

    • 41的位置:表示底色,后面是分号
    • 36的位置:表示字的颜色
    • 文件颜色后面要有个m
    • 字符串前后可以没有空格,如果有的话,输出也是有空格
    • 最后的0m的位置表示属性,0m是关闭所有属性

    下面是带颜色输出的参考范围;

    #!/bin/bash
    #
    #下面是字体输出颜色及终端格式控制
    #字体色范围:30-37
    echo -e "\033[30m 黑色字 \033[0m"
    echo -e "\033[31m 红色字 \033[0m"
    echo -e "\033[32m 绿色字 \033[0m"
    echo -e "\033[33m 黄色字 \033[0m"
    echo -e "\033[34m 蓝色字 \033[0m"
    echo -e "\033[35m 紫色字 \033[0m"
    echo -e "\033[36m 天蓝字 \033[0m"
    echo -e "\033[37m 白色字 \033[0m"
    #字背景颜色范围:40-47
    echo -e "\033[40;37m 黑底白字 \033[0m"
    echo -e "\033[41;30m 红底黑字 \033[0m"
    echo -e "\033[42;34m 绿底蓝字 \033[0m"
    echo -e "\033[43;34m 黄底蓝字 \033[0m"
    echo -e "\033[44;30m 蓝底黑字 \033[0m"
    echo -e "\033[45;30m 紫底黑字 \033[0m"
    echo -e "\033[46;30m 天蓝底黑字 \033[0m"
    echo -e "\033[47;34m 白底蓝字 \033[0m"
    
    #控制选项说明
    #\033[0m 关闭所有属性
    #\033[1m 设置高亮度
    #\033[4m 下划线
    echo -e "\033[4;31m 下划线红字 \033[0m"
    #闪烁
    echo -e "\033[5;34m 红字在闪烁 \033[0m"
    #反影
    echo -e "\033[8m 消隐 \033[0m "
    
    #\033[30m-\033[37m 设置前景色
    #\033[40m-\033[47m 设置背景色
    #\033[nA光标上移n行
    #\033[nB光标下移n行
    echo -e "\033[4A 光标上移4行 \033[0m"
    #\033[nC光标右移n行
    #\033[nD光标左移n行
    #\033[y;xH设置光标位置
    #\033[2J清屏
    #\033[K清除从光标到行尾的内容
    echo -e "\033[K 清除光标到行尾的内容 \033[0m"
    #\033[s 保存光标位置
    #\033[u 恢复光标位置
    #\033[?25| 隐藏光标
    #\033[?25h 显示光标
    echo -e "\033[?25l 隐藏光标 \033[0m"
    echo -e "\033[?25h 显示光标 \033[0m"
    #下面的这个例子是字体不停的闪烁。
    #!/bin/bash
    #
    a=30
    b=41
    while true
    do
    echo -e "\033[${a}m光辉女郎\033[0m"
    echo -e "\033[${a}m的吗西亚\033[0m"
    echo -e "\033[${a}m洛克萨斯\033[0m"
    a=$(($(($a%7))+30))
    b=$(($(($b%7))+40))
    #每次让字体颜色在30-37转换
    #每次让背景颜色在40-47转换
    echo -e "\033[4A\033[0m"
    done 
  • 相关阅读:
    储存过程、游标与触发器
    linux系统安装mysql5.7.22
    为什么实体类要实现序列化
    jsp的语法
    jsp的原理
    转发和重定向的区别
    SpringCloud——简介,5大组件
    Java——线程,并发包(Lock、线程池)
    Spring Data JPA——基本使用
    SpringBoot
  • 原文地址:https://www.cnblogs.com/ananmy/p/15627095.html
Copyright © 2011-2022 走看看