Linux Shell脚本编程case条件语句
1,判断一个数字是否则在1,2,3之中.
#!/bin/bash read -p "pls input a number:" n case "$n" in 1) echo "变量是1" ;; 2) echo "变量是2" ;; 3) echo "变量是3" ;; *) echo "pls input a number between 1 and 3" exit; esac
2,多级if语句改写
#!/bin/bash read -p "pls input a number:" n if [ $n -eq 1 ]; then echo "$n是变量1" elif [ $n -eq 2 ]; then echo "$n是变量2" elif [ $n -eq 3 ]; then echo "$n是变量3" else echo "pls input a number between 1 and 3" fi
3,if..else嵌套,实现
#!/bin/bash read -p "pls input a number:" n if [ $n -eq 1 ]; then echo 1 else if [ $n -eq 2 ]; then echo 2 elif [ $n -eq 3 ]; then echo 3 else echo "pls input a number [1-3]" fi fi
4,判断 分数等级
#!/bin/bash read -p "pls input score to test level:" score if [ $score -ge 90 ]; then echo "优秀" elif [ $score -ge 80 ]; then echo "良好" elif [ $score -ge 70 ]; then echo "中等" elif [ $score -ge 60 ]; then echo "及格" else echo "不及格" fi
5,给文字加颜色
#!/bin/bash RED_COLOR='\e[1;31m' GREEN_COLOR='\e[1;32m' YELLOW_COLOR='\e[1;33m' BLUE_COLOR='\e[1;34m' RESET_COLOR='\e[0m' echo ' 1, 悟空 2, 八戒 3, 唐僧 4, 白龙马 ' read -p "pls input a number:" n case $n in 1) echo -e "${RED_COLOR}悟空${RESET_COLOR}" ;; 2) echo -e "${GREEN_COLOR}八戒${RESET_COLOR}" ;; 3) echo -e "${YELLOW_COLOR}唐僧${RESET_COLOR}" ;; 4) echo -e "${BLUE_COLOR}白龙马${RESET_COLOR}" ;; *) echo "you need input a number in {1|2|3|4}" esac
另一种写法:
#!/bin/bash RED_COLOR='\e[1;31m' GREEN_COLOR='\e[1;32m' YELLOW_COLOR='\e[1;33m' BLUE_COLOR='\e[1;34m' RESET_COLOR='\e[0m' function menu(){ cat <<END 1, 悟空 2, 八戒 3, 唐僧 4, 白龙马 END } function select_type(){ read -p "pls input a number:" n case $n in 1) echo -e "${RED_COLOR}悟空${RESET_COLOR}" ;; 2) echo -e "${GREEN_COLOR}八戒${RESET_COLOR}" ;; 3) echo -e "${YELLOW_COLOR}唐僧${RESET_COLOR}" ;; 4) echo -e "${BLUE_COLOR}白龙马${RESET_COLOR}" ;; *) echo "you need input a number in {1|2|3|4}" esac } function main(){ menu select_type } main
读取命令行参数,给内容设置颜色
#!/bin/bash RED_COLOR='\e[1;31m' GREEN_COLOR='\e[1;32m' YELLOW_COLOR='\e[1;33m' BLUE_COLOR='\e[1;34m' RESET_COLOR='\e[0m' if [ $# -ne 2 ]; then echo "Usage $0 input {red|green|yellow|blue}" exit fi case $2 in red) echo -e "${RED_COLOR}$1${RESET_COLOR}" ;; green) echo -e "${GREEN_COLOR}$1${RESET_COLOR}" ;; yellow) echo -e "${YELLOW_COLOR}$1${RESET_COLOR}" ;; blue) echo -e "${BLUE_COLOR}$1${RESET_COLOR}" ;; *) echo "usage $0 input {red|green|yellow|blue}" exit esac
修改成函数调用方式
#!/bin/bash function toColor(){ RED_COLOR='\e[1;31m' GREEN_COLOR='\e[1;32m' YELLOW_COLOR='\e[1;33m' BLUE_COLOR='\e[1;34m' RESET_COLOR='\e[0m' if [ $# -ne 2 ]; then echo "Usage $0 input {red|green|yellow|blue}" exit fi case $2 in red) echo -e "${RED_COLOR}$1${RESET_COLOR}" ;; green) echo -e "${GREEN_COLOR}$1${RESET_COLOR}" ;; yellow) echo -e "${YELLOW_COLOR}$1${RESET_COLOR}" ;; blue) echo -e "${BLUE_COLOR}$1${RESET_COLOR}" ;; *) echo "usage $0 input {red|green|yellow|blue}" exit esac } function main(){ toColor $1 $2 } main $*
作者:ghostwu, 出处:http://www.cnblogs.com/ghostwu
博客大多数文章均属原创,欢迎转载,且在文章页面明显位置给出原文连接
分类:
Linux Shell脚本编程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架