编写shell脚本实现从键盘输入5个数,放到数组中,查找最大的元素并进行输出 (1)input( )函数进行数据的输入 (2)find_max( )函数进行查找
时间: 2024-03-07 16:46:41 浏览: 7
好的,以下是实现这个功能的shell脚本:
```shell
#!/bin/bash
# 定义一个数组
declare -a numbers
# 定义一个函数用于从键盘输入5个数
function input {
echo "请输入5个数字:"
for ((i=0; i<5; i++))
do
read num
numbers[i]=$num
done
}
# 定义一个函数用于查找最大的元素并输出
function find_max {
max=${numbers[0]}
for num in ${numbers[@]}
do
if [[ $num -gt $max ]]
then
max=$num
fi
done
echo "最大的数字是:$max"
}
# 调用input函数输入数据
input
# 调用find_max函数查找最大的元素并输出
find_max
```
使用方法:
在命令行中输入以下命令:
```shell
$ chmod +x find_max.sh # 给脚本文件添加执行权限
$ ./find_max.sh # 执行脚本文件
```
然后就可以开始输入5个数字了,输入完毕后程序会自动查找最大的数字并输出。
相关问题
用shell脚本实现从键盘输入一串数字,再用冒泡排序
#!/bin/bash
# 定义函数bubbleSort,实现冒泡排序
function bubbleSort(){
arr=("$@") # 将参数转换为数组
len=${#arr[@]} # 数组长度
for ((i=0; i<$len; i++)); do
for ((j=0; j<$len-$i-1; j++)); do
if [[ ${arr[$j]} -gt ${arr[$((j+1))]} ]]; then
# 交换两个数的位置
temp=${arr[$j]}
arr[$j]=${arr[$((j+1))]}
arr[$((j+1))]=$temp
fi
done
done
echo "${arr[@]}" # 输出排序后的结果
}
read -p "请输入一串数字(以空格分隔):" input
arr=($input) # 将输入的字符串转换为数组
sortedArr=$(bubbleSort ${arr[@]}) # 调用bubbleSort函数排序
echo "排序后的结果为:$sortedArr"
编写一个shell的函数,输入一个参数,判断这个参数是否是一个整数,如果是整数就返回
可以使用Shell脚本编写一个函数来判断一个参数是否是一个整数。首先定义一个函数名为`check_integer`,接受一个参数,然后使用正则表达式来判断参数是否是一个整数。以下是一个示例代码:
```bash
#!/bin/bash
# Define a function to check if the input is an integer
check_integer() {
if [[ $1 =~ ^-?[0-9]+$ ]]; then
echo "$1 is an integer."
else
echo "$1 is not an integer."
fi
}
# Call the function with an input parameter
check_integer $1
```
在这个示例中,我们定义了一个名为`check_integer`的函数,使用了正则表达式`^-[0-9]+$`来匹配整数,`^`表示字符串的开始,`-?`表示可能包含一个负号,`[0-9]+`表示一个或多个数字,`$`表示字符串的结束。如果参数匹配整数,就输出提示信息`$1 is an integer.`,否则输出`$1 is not an integer.`。
示例中的`check_integer $1`是调用函数并传入一个参数进行测试。
通过这个Shell函数,我们可以方便地判断一个参数是否是一个整数,如果是整数就返回相应的提示信息。