2 编写一个 shell 脚本:输出一个等腰三角形。
时间: 2024-11-05 16:31:05 浏览: 14
创建一个 Shell 脚本来输出一个等腰三角形,你可以使用嵌套的 for 循环,这里是一个简单的例子:
```bash
#!/bin/bash
# 定义三角形的边长
n=5
# 上半部分打印等腰三角形
for ((i=1; i<=$n; i++))
do
echo " " $(($n-i+1)) # 左侧空格
for ((j=1; j<=i; j++))
do
printf "* "
done
echo # 结束这一行
done
# 下半部分(如果需要的话),倒置打印星号
if [ $n -gt 1 ]; then
for ((i=n; i>0; i--))
do
echo " " $(($n-i+1)) # 左侧空格
for ((j=1; j<=i; j++))
do
printf "* "
done
echo # 结束这一行
done
fi
# 提示用户按任意键继续
read -p "Press any key to continue..."
```
这个脚本会打印一个边长为5的等腰三角形。如果你想要改变三角形的大小,只需调整变量 `n` 的值即可。
相关问题
编写一个 shell脚本:输出一个等腰三角形。
当然,我们可以编写一个简单的shell脚本来打印一个等腰三角形。下面是一个基础的例子,使用`echo`命令逐行输出星号字符:
```bash
#!/bin/bash
# 用户输入三角形的边长
read -p "请输入等腰三角形的边长: " n
# 判断输入是否为正整数
if ! [[ "$n" =~ ^[0-9]+$ ]] || [ "$n" -lt 1 ]; then
echo "输入错误,边长应为正整数!"
exit 1
fi
# 打印底边
for ((i = 1; i <= n; i++)); do
echo "${*// *,/ }" $'\t' # 使用通配符替换星号生成等宽的星号列
done
echo
# 打印中间的斜线
for ((i = 1; i < n - 1; i++)); do
echo "/\\"
done
echo
# 打印顶点
for ((i = n - 1; i > 0; i--)); do
echo "${*// *,/ }" $'\t' # 再次使用通配符替换星号
done
```
当你运行此脚本并输入一个正整数后,它会打印出一个等腰三角形。请注意,这个脚本依赖于终端的宽度,并且如果终端不够大,可能会显示得不太美观。
编写一个shell脚本,使用for循环输出一个实心等腰三角形。
以下是一个实现该功能的shell脚本:
```bash
#!/bin/bash
echo "请输入三角形的高度:"
read height
for (( i=1; i<=height; i++ ))
do
for (( j=i; j<=height-1; j++ ))
do
echo -n " "
done
for (( k=1; k<=2*i-1; k++ ))
do
echo -n "*"
done
echo
done
```
脚本会先要求用户输入三角形的高度,然后使用两个嵌套的for循环输出实心等腰三角形。第一个for循环用于控制行数,第二个for循环用于输出每一行的星号。其中,第二个for循环的循环次数为2i-1,表示第i行需要输出2i-1个星号。在每行输出完星号之后,使用echo命令输出一个换行符。
阅读全文