Shell脚本练习 1.打印给定行数的*号。第一行打印1个,第二行打印2个,等等。行数由用户在命令行 上输入。 2.编写脚本文件 sum.sh,存放在/home/cauc/scripts目录下。脚本功
时间: 2024-09-13 15:02:45 浏览: 48
首先,我们来介绍如何编写一个简单的Shell脚本来打印给定行数的星号(*号),其中每行的星号数量对应于行号。这个脚本可以通过命令行参数接收行数。例如,如果我们想打印5行的星号,我们会调用脚本并传递数字5。
下面是一个简单的脚本示例:
```sh
#!/bin/bash
# 该脚本接收一个参数,即打印星号的行数
# 检查是否有一个参数传入
if [ $# -ne 1 ]; then
echo "请传入一个参数:行数"
exit 1
fi
# 获取行数并检查是否为正整数
linenumber=$1
if ! [[ $linenumber =~ ^[0-9]+$ ]]; then
echo "参数必须是一个正整数"
exit 1
fi
# 使用for循环打印星号
for (( i=1; i<=linenumber; i++ )); do
for (( j=1; j<=i; j++ )); do
echo -n "*"
done
echo "" # 换行
done
```
保存这个脚本到文件中,比如命名为 `print_stars.sh`,并给予执行权限:
```sh
chmod +x print_stars.sh
```
你可以通过以下命令运行它:
```sh
./print_stars.sh 5
```
这会输出:
```
*
**
***
****
*****
```
接下来,关于编写 `sum.sh` 脚本文件并存放在 `/home/cauc/scripts` 目录下的任务,由于你没有提供具体的脚本功能要求,这里我假设你想要创建一个脚本,它接收多个参数,并计算它们的总和。
```sh
#!/bin/bash
# sum.sh - 计算传入的数字参数的和
# 初始化总和变量
total=0
# 遍历所有参数并累加它们
for arg in "$@"; do
if ! [[ $arg =~ ^-?[0-9]+$ ]]; then
echo "警告:参数 $arg 不是整数,将被忽略"
continue
fi
total=$((total + arg))
done
# 输出总和
echo "总和是:$total"
```
同样地,保存这个脚本到 `/home/cauc/scripts/sum.sh`,并给予执行权限:
```sh
chmod +x /home/cauc/scripts/sum.sh
```
运行脚本的示例:
```sh
/home/cauc/scripts/sum.sh 1 2 3 4 5
```
这会输出:
```
总和是:15
```
阅读全文