[英]Shell script to output the largest
如何编写一个脚本,该脚本将接收参数列表并输出最大的数字。 如果未提供任何参数,则输出错误消息。
我编写了以下代码,以检查是否未提供任何参数,并输出错误消息。
#!/bin/bash
if [ "$#" -eq "0" ]
then
echo "No arugments supplied"
else
echo "$# Parameter"
但是我不知道如何继续...
保持当前最大 循环输入,必要时更新最大值。 最后,您将获得全局最大值。
未经测试:
#!/usr/bin/bash
if [ $# -eq 0 ]; then
echo "Usage: $0 NUMBERS" >&2
exit 1;
fi
max="$1"
shift
while [ $# -gt 0 ]; do
if [ "$1" -gt "$max" ]; then
max="$1"
fi
shift
done
echo "$max"
使用sort -n(数字)和-r(反向),然后选择输出的第一行-例如
#!/bin/bash
if [ "$#" -eq "0" ]
then
echo "No arugments supplied"
else
echo "$# Parameter"
for i in $*; do echo ${i}; done | sort -nr | head -1
fi
现在,您面临的唯一问题是输入(自变量)不是数字时,但是您什么也没说。
这是您可以实现的伪代码:
max
的变量中 max
,则更新max
max
列印 这是一个显示所有参数的示例循环:
for num; do
echo $num
done
这是一个比较值的示例:
if (( num > max )); then
echo $num is greater than $max
fi
这应该足以帮助您完成家庭作业。
好吧,既然其他人已经为您提供了实际的解决方案,这也是我的:
#!/bin/bash
if (( $# == 0 )); then
echo "No arugments supplied"
exit 1
fi
max=$1
for num; do
if (( num > max )); then
max=$num
fi
done
echo $max
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.