case语句 (原理 结构 案例)函数 彩色字符输出

tech2026-08-04  2

case语句 (原理 结构 案例)函数 彩色字符输出

一、case语句语法结构1.工作原理2.语法结构3. 应用案例 二、函数1.什么是函数?2.函数定义3.有颜色的字符输出


一、case语句语法结构

1.工作原理

case语句为多重匹配语句 ● 如果匹配成功,执行相匹配的命令

2.语法结构

case var in pattern 1) command 1 pattern 2) command 2 *) command 3 ;; esac

3. 应用案例

判断用户输入的字符串,如果是"hello",则显示"world";如果是"world", 则显示"hello",否则提示"请输入hello或者world,谢谢!"

#!/bin/bash read -p "keyin: " name case $name in hello) echo world ;; world) echo hello ;; *) echo "keyin hello or world" echo "请输入hello或者world,谢谢!" ;; esac

二、函数

1.什么是函数?

shell中允许将一组命令集合或语句形成一段可用代码,称为shell函数 给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能

2.函数定义

方法一: 函数名() { 函数体(一堆命令的集合,来实现某个功能) } 方法二: function 函数名() { 函数体(一堆命令的集合,来实现某个功能) echo hello echo world }

3.有颜色的字符输出

#字体色范围: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

最新回复(0)