教你如何用shell脚本输出菱形

通过shell脚本,我们可以在脚本中,用不同的符号,来输出一个菱形图案。虽然图案看起来输出比较容易,但是真正写起来,还是要体研究起来,我们还是可以发现,其实还是有点小门道的,现在我我们就通过不同的符号来具体了解下输出原理:

一、一个完整的菱形我们要一段一段的解读,先输出三角形,最后在拼成一个完整的菱形:
[root@zhu opt]# vi 9lingxing.sh
#!/bin/bash
for ((i=9; i>=1; i--))
dofor ((a=1; a<=$i; a++))doecho -n "#"donefor ((b=9; b>=$i; b--))doecho -n "&"donefor ((c=8; c>=$i; c--))doecho -n "%"done
echo ""
done

可以看出,一个三角形是由3个直角三角形组成,通过上述语句,可以输出一个三角形,接下来,我们就需要把对应的符号换成空格和“*”就行了。

二、将符号对影成想对应的空白和“*”:
[root@zhu opt]# vi 9lingxing.sh
#!/bin/bash
for ((i=9; i>=1; i--))
dofor ((a=1; a<=$i; a++))doecho -n " "donefor ((b=9; b>=$i; b--))doecho -n "*"donefor ((c=8; c>=$i; c--))doecho -n "*"done
echo ""
done

这样我们就可以获得一个三角形。接下来,我们在处理另一半的三角形。

三、画出一个倒吊的三角形:
[root@zhu opt]# vi 9lingxing2.shdone
#!/bin/bash
for ((i=2; i<=9; i++))
dofor ((a=1; a<=$i; a++))doecho -n "&"donefor ((b=9; b>=$i; b--))doecho -n "%"done            for ((c=8; c>=$i; c--))doecho -n "@"doneecho " "
done

四、然后再把对应的字符换成“*”
[root@zhu opt]# vi 9lingxing2.sh
#!/bin/bash
for ((i=2; i<=9; i++))
dofor ((a=1; a<=$i; a++))doecho -n " "donefor ((b=9; b>=$i; b--))doecho -n "*"donefor ((c=8; c>=$i; c--))doecho -n "*"doneecho " "
done

五、最后将2段代码合二为一就能输出一个菱形了:
[root@zhu opt]# vi 9lingxing.sh
#!/bin/bash
for ((i=9; i>=1; i--))
dofor ((a=1; a<=$i; a++))doecho -n " "donefor ((b=9; b>=$i; b--))doecho -n "*"donefor ((c=8; c>=$i; c--))doecho -n "*"done
echo " "
donefor ((i=2; i<=9; i++))
dofor ((a=1; a<=$i; a++))doecho -n " "donefor ((b=9; b>=$i; b--))doecho -n "*"donefor ((c=8; c>=$i; c--))doecho -n "*"doneecho " "
done
~

再来我们可以将代码改一下变量,就可以输出我们需要的尺寸的菱形:

#!/bin/bash
read -p "请输入菱形大小:" g
for ((i=1;i<=$g;i++))
dofor ((j=$g;j>$i;j--))doecho -n " "
donefor ((p=1;p<=$i;p++))doecho -n "* "
done
echo ""
donefor ((k=$g-1;k>=1;k--))
dofor ((m=$g;m>$k;m--))doecho -n " "
donefor ((l=1;l<=$k;l++))doecho -n "* "
done
echo ""
done

教你如何用shell脚本输出菱形相关推荐

  1. shell脚本输出菱形与等边三角形

    [前言] 练习shell,提高逻辑能力. [脚本] 三角形与菱形均通过几个for循环实现,当然也可以用while. 下面是脚本内容: [三角形] 1 2 3 4 5 6 7 8 9 10 11 12 ...

  2. c语言用星号循环打出爱心,学过C语言的同学,是否还记得当年各种打印各种星星。今天,我就改一版使用Shell脚本输出各种星星。打印单个星号         这个没啥可说的,直接上代码:#...

    学过C语言的同学,是否还记得当年各种打印各种星星.今天,我就改一版使用Shell脚本输出各种星星.打印单个星号 这个没啥可说的,直接上代码:# cat star.sh #!/bin/bash echo ...

  3. python编程怎么建立工程_教你如何用Python脚本快速创建项目

    相信初学Cocos2D者对Python还很陌生,今天本篇教程教你如何用Python脚本快速创建项目. 在Cocos2d-x2.1.4以上的版本中,取消了使用vs模版创建项目的方法,开始使用python ...

  4. 用shell脚本输出99乘法表

    用shell脚本输出99乘法表 效果: 1 * 1 = 1 1 * 2 = 2 2 * 2 = 4 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 1 * 4 = 4 2 * 4 = 8 ...

  5. Linux shell脚本输出日志的方法和案例

    Linux shell脚本输出日志 #### log_correct函数打印正确的输出到日志文件 function log_correct () {DATE=`date "+%Y-%m-%d ...

  6. linux c程序中获取shell脚本输出

    http://doc.chinaunix.net/linux/201004/512284.shtml1. 前言 Unix界有一句名言:"一行shell脚本胜过万行C程序",虽然这句 ...

  7. linux shell oracle脚本_领导:如何用shell脚本统计Oracle数据库进程明细和存储过程信息...

    概述 今天主要分享一下两个shell脚本,主要是为了查看数据库进程的相关信息和存储过程信息,下面一起来看看吧~ 数据库连接脚本 use script settdb.sh for DB login de ...

  8. c中获取python控制台输出_linux c程序中获取shell脚本输出的实现方法

    [转]Linux Shell脚本调试技术 本文转载自:https://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/ Shell脚本调试技术 ...

  9. shell脚本输出颜色

    写shell脚本时,用echo命令输出内容,这我们都知道.但是怎么给输出内容上点色呢? 其实很简单,利用-e参数,即启用反斜杠转义的解释. `echo' 对下列反斜杠字符进行转义:       \a  ...

最新文章

  1. 在CentOS 6.3 64bit上安装MySQL for python模块
  2. LAMP平台部署及应用
  3. 电脑新手:一次了解电脑键盘上每个键的含义!
  4. datatable 自定义搜索框 + 汉化
  5. 获奖者:​郑纬民,男,清华大学教授、博士生导师,《大数据》杂志主编。...
  6. 对android中ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解
  7. 设计模式学习之---Facade(外观)模式
  8. 5万字 | 2020大厂面试总结,PDF供下载
  9. ThinkPHP表单信息收集系统
  10. Activiti7的进阶使用
  11. R语言解决安装rgl包问题:ERROR: compilation failed for package ‘rgl‘
  12. 云计算技术与应用课后答案第一章
  13. Jmeter遇到打不开的问题
  14. pure-admin九州权限系统地址简单读
  15. guest additions
  16. 什么是无线HDMI,您应该使用它吗?
  17. JS代码:身份证号EMAIL检验
  18. 用户管理系统_学期项目智能管理系统用户操作指南
  19. windows 10企业版windows Defender无法使用
  20. 网络变压器的检测设备(5):检测单个元件时选择组合参数的方法

热门文章

  1. 微信小程序之解决background-image属性失效
  2. 计算机网络教程实验二——静态路由配置实验心得
  3. php生成pdf中文断码_PHP生成PDF完美支持中文,解决TCPDF乱码
  4. 计算机ps2定义,软件硬件界面接口定义 bt656 硬件接口定义
  5. 定投基金,如何计算年化收益率
  6. 社科院与杜兰大学金融管理硕士项目——有规划的人生值得期待,你当下的规划是什么呢
  7. 解决h5 在微信放大字体中的问题
  8. vinted是什么平台以及特点
  9. 视频格式那么多,MP4/RMVB/MKV/AVI 等,这些视频格式与编码压缩标准 mpeg4,H.264.H.265 等有什么关系?...
  10. 干货!JVM 基础面试题总结(持续更新)