news 2026/2/26 7:00:33

shell实现根据输入的文字打印出大号字符艺术

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
shell实现根据输入的文字打印出大号字符艺术

创建脚本

#!/bin/bash # bigfont.sh - 纯 Shell 大字体库 # 定义大字体,每个字符 6 行 declare -A bigfont # ---------------- 字母 ---------------- bigfont["A"]=" █████╗ ██╔══██╗ ███████║ ██╔══██║ ██║ ██║ ╚═╝ ╚═╝ " bigfont["B"]="██████╗ ██╔══██╗ ██████╔╝ ██╔══██╗ ██████╔╝ ╚═════╝ " bigfont["C"]=" ██████╗ ██╔════╝ ██║ ██║ ╚██████╗ ╚═════╝ " bigfont["D"]="██████╗ ██╔══██╗ ██║ ██║ ██║ ██║ ██████╔╝ ╚═════╝ " bigfont["E"]="███████╗ ██╔════╝ █████╗ ██╔══╝ ███████╗ ╚══════╝ " bigfont["F"]="███████╗ ██╔════╝ █████╗ ██╔══╝ ██║ ╚═╝ " bigfont["G"]=" ██████╗ ██╔════╝ ██║ ███╗ ██║ ██║ ╚██████╔╝ ╚═════╝ " bigfont["H"]="██╗ ██╗ ██║ ██║ ███████║ ██╔══██║ ██║ ██║ ╚═╝ ╚═╝ " bigfont["I"]="██╗ ██║ ██║ ██║ ██║ ╚═╝" bigfont["J"]=" ██╗ ██║ ██║ ██ ██║ ╚█████╔╝ ╚════╝ " bigfont["K"]="██╗ ██╗ ██║ ██╔╝ █████╔╝ ██╔═██╗ ██║ ██╗ ╚═╝ ╚═╝ " bigfont["L"]="██╗ ██║ ██║ ██║ ███████╗ ╚══════╝ " bigfont["M"]="███╗ ███╗ ████╗ ████║ ██╔████╔██║ ██║╚██╔╝██║ ██║ ╚═╝ ██║ ╚═╝ ╚═╝" bigfont["N"]="███╗ ██╗ ████╗ ██║ ██╔██╗ ██║ ██║╚██╗██║ ██║ ╚████║ ╚═╝ ╚═══╝" bigfont["O"]=" ██████╗ ██╔═══██╗ ██║ ██║ ██║ ██║ ╚██████╔╝ ╚═════╝ " bigfont["P"]="██████╗ ██╔══██╗ ██████╔╝ ██╔═══╝ ██║ ╚═╝ " bigfont["Q"]=" ██████╗ ██╔═══██╗ ██║ ██║ ██║▄▄ ██║ ╚██████╔╝ ╚══▀▀═╝ " bigfont["R"]="██████╗ ██╔══██╗ ██████╔╝ ██╔═══╝ ██║ ╚═╝ " bigfont["S"]="███████╗ ██╔════╝ ███████╗ ╚════██║ ███████║ ╚══════╝ " bigfont["T"]="████████╗ ╚══██╔══╝ ██║ ██║ ██║ ╚═╝ " bigfont["U"]="██╗ ██╗ ██║ ██║ ██║ ██║ ██║ ██║ ╚██████╔╝ ╚═════╝ " bigfont["V"]="██╗ ██╗ ██║ ██║ ██║ ██║ ╚██╗ ██╔╝ ╚████╔╝ ╚═══╝ " bigfont["W"]="██╗ ██╗ ██║ ██║ ██║ █╗ ██║ ██║███╗██║ ╚███╔███╔╝ ╚══╝╚══╝ " bigfont["X"]="██╗ ██╗ ╚██╗██╔╝ ╚███╔╝ ██╔██╗ ██╔╝ ██╗ ╚═╝ ╚═╝" bigfont["Y"]="██╗ ██╗ ╚██╗ ██╔╝ ╚████╔╝ ╚██╔╝ ██║ ╚═╝ " bigfont["Z"]="███████╗ ██╔╝ ██╔╝ ██╔╝ ██╔╝ ███████╗ " # ---------------- 数字 ---------------- bigfont["0"]=" ██████╗ ██╔═══██╗ ██║ ██║ ██║ ██║ ╚██████╔╝ ╚═════╝ " bigfont["1"]=" ██╗ ███║ ╚██║ ██║ ██║ ╚═╝ " bigfont["2"]="██████╗ ╚════██╗ █████╔╝ ██╔═══╝ ███████╗ ╚══════╝" bigfont["3"]="██████╗ ╚════██╗ █████╔╝ ╚═══██╗ ██████╔╝ ╚═════╝ " bigfont["4"]="██╗ ██╗ ██║ ██║ ███████║ ╚════██║ ██║ ╚═╝" bigfont["5"]="███████╗ ██╔════╝ ███████╗ ╚════██║ ███████║ ╚══════╝" bigfont["6"]=" ██████╗ ██╔════╝ ███████╗ ██╔══██║ ╚██████║ ╚═════╝ " bigfont["7"]="███████╗ ╚════██║ ██╔╝ ██╔╝ ██╔╝ ╚═╝ " bigfont["8"]="███████╗ ██╔══██╗ ███████║ ██╔══██║ ███████║ ╚══════╝" bigfont["9"]="███████╗ ██╔══██╗ ███████║ ╚════██║ ███████║ ╚══════╝" # ---------------- 特殊字符 ---------------- bigfont[" "]=" " bigfont["-"]=" ██████╗ ╚═════╝ " bigfont["."]=" ██╗ ╚═╝ " # ---------------- 打印函数 ---------------- print_big() { local input="$1" local lines=6 # 每个字符行数 # 创建数组存储每行输出 local output_lines=("" "" "" "" "" "") # 逐字符处理 for ((j=0;j<${#input};j++)); do char="${input:j:1}" # 如果是小写字母,转换为大写 if [[ "$char" =~ [a-z] ]]; then char=$(echo "$char" | tr 'a-z' 'A-Z') fi # 获取字符的6行表示 if [[ -n "${bigfont[$char]}" ]]; then # 将字符的6行分割到数组 IFS=$'\n' read -r -d '' -a char_lines <<< "${bigfont[$char]}" # 将每行添加到输出数组 for ((i=0;i<lines;i++)); do # 如果字符行数不够,用空格补齐 if [[ -n "${char_lines[$i]}" ]]; then line_content="${char_lines[$i]}" else line_content="" fi # 固定宽度:每个字符占10个字符宽度 output_lines[$i]="${output_lines[$i]}${line_content} " done else # 对于未定义的字符,用空格占位 for ((i=0;i<lines;i++)); do output_lines[$i]="${output_lines[$i]}${char} " done fi done # 打印所有行 for ((i=0;i<lines;i++)); do echo "${output_lines[$i]}" done } # 测试函数 test_print() { echo "=== 测试数字 ===" print_big "1234567890" echo "" echo "=== 测试字母 ===" print_big "ABCDEFGHIJKL" print_big "MNOPQRSTUVWXYZ" echo "" echo "=== 测试混合 ===" print_big "HELLO 2024" } # 如果传入参数,则打印参数,否则运行测试 if [[ $# -gt 0 ]]; then print_big "$*" else test_print fi

运行测试

# 打印参数 ./bigfont.sh "HELLO WORLD" # 或者直接运行脚本测试 ./bigfont.sh

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/23 10:54:58

python_django个性化推荐小学生古诗词情景化学习小程序

文章目录项目背景核心技术功能模块创新点应用价值系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;项目背景 针对小学生古诗词学习兴趣不足、记忆困难等问题&#xff0c;结合情景化教学理念&#x…

作者头像 李华
网站建设 2026/2/24 7:57:45

C++11右值引用:零拷贝性能革命

好的&#xff0c;我们来详细探讨 C11 中引入的右值引用和移动语义&#xff0c;理解它们如何解决性能瓶颈并实现零拷贝优化。 问题背景&#xff1a;性能瓶颈源于不必要的拷贝 在 C11 之前&#xff0c;对象的传递&#xff08;如函数参数、返回值&#xff09;或容器操作&#xf…

作者头像 李华
网站建设 2026/2/25 5:37:39

STM32F1xx HAL_FLASH库实战指南

目录 一、STM32F1xx FLASH 硬件基础&#xff08;关键&#xff01;&#xff09; 1. 核心参数&#xff08;按容量分&#xff0c;F103C8T6 为「中容量」&#xff09; 2. FLASH 操作核心规则&#xff08;违反必失败&#xff09; 二、STM32F1xx_hal_flash 库文件组成 三、HAL_F…

作者头像 李华
网站建设 2026/2/24 0:20:40

大模型+政府服务:六大应用场景实战解析,AI政务开发必看

文章详解了大模型技术在政府服务领域的六大应用场景&#xff1a;政策智能推送、行政审批引导、企业需求识别、产业链招商分析、人才靶向招引及合规风险内审。这些应用解决了传统政府服务的痛点&#xff0c;提升服务效率与精准度&#xff0c;为"AI政府"提供可复制的实…

作者头像 李华