linux - 如何在Shell脚本中绘制星形图案?
问题描述
我正在尝试在 Shell 脚本中创建以下模式设计,我已经为相同的代码编写了下面的代码,但我没有得到预期的结果。有人可以帮忙吗?
期望的输出-->
*
**
***
****
*****
#! /bin/sh
for ((i=1; i<=5; i++))
do
for ((j=1; j<=5; j++))
do
if [ $j > 6-$i ]
then
echo -n "* "
elif [ $j == 6-$i ]
then
echo -n "* "
else
echo -n " "
fi
done
echo
done
当前输出-->
*****
*****
*****
*****
*****
解决方案
您将需要使用另一个循环来打印前置空格。
for ((i=1;i<=5;i++)); # Loop to create 5 lines of text
do
for((k=1;k<=(5-i);k++)); # Loop to padd prepending spaces
do
printf "%s" " ";
done;
for ((j=1;j<=i;j++)); # Loop to create asterix
do
printf "%s" "*";
done;
printf "\n"; # Print the carriage return
done
推荐阅读
- c# - LINQ 内部查询返回 null
- java - 基于 Spring Boot AMQP 的 JmsListener 在 TextMessage 上失败
- java - 如何使用自定义排除 Gradle 5.x 中已解析的插件?
- android - Android Studio 在 Windows 机器上的工作和构建项目非常慢
- javascript - Grunt:将 HTML 页面捆绑到单个 HTML 文件中,包括。所有依赖项
- apache - 有人可以告诉我我的 seo 友好 url htaccess 代码有什么问题吗?
- javascript - 右键单击并选择“打开...”之一后,从上下文菜单中替换 href 链接
- php - 控制器中的 Symfony 3.4 $_SESSION
- download - 如何从空手道的 api 端点获取下载的 xlsx 文件?
- javascript - React 中的 Import() - 在 Chrome/Firefox 扩展中触发错误