1

我想打印命令行中传入的最大数字,但我不确定如何正确分配变量。

解决此问题的正确方法是什么?

#!/bin/sh
x=0
for var in "$@";
do 
if [ $var -gt $x ]; then
$x=$var       #this does not work
fi

done
echo "Largest number: $x"
4

1 回答 1

3

你的错误是$x=$var。应该是x=$var。您可以将其视为$x包含 in 变量的值,x因此您不想分配给值,x而是分配给x自身。

#!/bin/sh
x=0
for var in "$@"; do
    if [ "$var" -gt "$x" ]; then
        x="$var"
    fi
done
echo "Largest number: $x"

这是一个使用一些可处理负数的核心工具的替代脚本:

#!/bin/bash
echo "Largest: $(printf '%i\n' $@ | sort -n | tail -n 1)"
于 2013-10-16T10:24:31.010 回答