编写shel1 脚本,打印给定行数的*号。第一行打印1个,第二行打印2个,等等。行数由用户在命令行上输入。
时间: 2024-02-26 11:56:28 浏览: 185
好的,下面是符合您要求的shell脚本代码:
```bash
#!/bin/bash
# 获取用户输入的行数
read -p "请输入要打印的行数:" num
# 判断输入是否为正整数
if ! [[ "$num" =~ ^[1-9][0-9]*$ ]]; then
echo "输入的行数不合法!"
exit 1
fi
# 打印指定行数的*号
for ((i=1; i<=$num; i++)); do
for ((j=1; j<=$i; j++)); do
echo -n "*"
done
echo
done
```
使用方法:
1. 将以上代码保存为一个文件,例如 `print_star.sh`。
2. 打开终端,进入保存文件的目录。
3. 给文件执行权限:`chmod +x print_star.sh`。
4. 运行脚本:`./print_star.sh`。
5. 根据提示输入行数,即可打印出相应数量的*号。
相关问题
1. Linux编写一个 shel1脚本,实现在终端中打印出一个等腰直角三角形。 2. Linux编写一个 shell脚本,实现一个简单的加减乘除计算器。
1. 要在Linux下编写一个shell脚本来打印等腰直角三角形,你可以使用循环结构,下面是一个简单的例子:
```bash
#!/bin/bash
# 用户输入三角形的行数
echo "请输入三角形的行数:"
read num_rows
# 使用循环打印每一行
for ((i=1; i<=$num_rows; i++))
do
# 对奇数行打印星号和空格
if [ $((i % 2)) -eq 1 ]; then
echo -n "$((i * '* '))"
else
echo -n " "
fi
# 打印星号的数量随行数递增
for ((j=1; j<=i; j++)); do
echo -n "*"
done
# 结束行并转行
echo
done
```
运行此脚本后,根据输入的行数,它将在终端上打印出等腰直角三角形。
2. 编写一个简单的加减乘除计算器的shell脚本如下:
```bash
#!/bin/bash
# 函数用于处理加法
function add {
a=$1
b=$2
echo "$a + $b = $(($a + $b))"
}
# 函数处理减法
function subtract {
a=$1
b=$2
echo "$a - $b = $(($a - $b))"
}
# 函数处理乘法
function multiply {
a=$1
b=$2
echo "$a * $b = $(($a * $b))"
}
# 函数处理除法,注意除数不能为零
function divide {
a=$1
b=$2
if [[ $b -ne 0 ]]; then
echo "$a / $b = $(($a / $b))"
else
echo "错误:除数不能为零!"
fi
}
# 显示帮助信息
echo "选择操作:"
echo "1. 加法"
echo "2. 减法"
echo "3. 乘法"
echo "4. 除法"
# 获取用户的输入
read choice
case $choice in
1)
read a b
add $a $b
;;
2)
read a b
subtract $a $b
;;
3)
read a b
multiply $a $b
;;
4)
read a b
divide $a $b
;;
*)
echo "无效的选择!"
;;
esac
```
运行此脚本,用户可以选择运算类型并输入数字,然后计算器会显示结果。
3.编写一个 shel1脚本:新建一个数组 arry1[0~8]; 任务一:将其全部元素输出; 任务二:将第4个元素修改 15; 任务三:再新建一个数组 arry2[a~f],并与 arry] 拼接起来。 4. 编写一个 shel1脚本使得 30+20=50。
创建shell脚本来完成这些任务:
```bash
#!/bin/bash
# 创建数组 arry1 从 0 到 8
arry1=(0 1 2 3 4 5 6 7 8)
# 任务一:打印数组的所有元素
echo "Array arry1 elements:"
for element in "${arry1[@]}"
do
echo "$element"
done
echo ""
# 任务二:将第四个元素设为 15
arry1[3]=15
echo "After modifying the fourth element to 15:"
echo "${arry1[@]}"
# 任务三:创建新数组 arry2 从 a 到 f,并拼接 arry1
arry2=("a" "b" "c" "d" "e" "f")
arry_full=("${arry1[@]}" "${arry2[@]}")
echo "Combined array arry_full:"
echo "${arry_full[@]}"
# 计算 30 + 20 的值 (这里直接显示结果而不是赋值)
result=$((30 + 20))
echo "The result of 30 + 20 is: $result"
```
保存此脚本到一个文件,比如`array_operations.sh`,然后运行 `chmod +x array_operations.sh` 给它执行权限,最后使用 `./array_operations.sh` 来执行它。
阅读全文