我想打印命令行传入的最大数字,但我不确定如何正确分配变量。
解决此问题的正确方法是什么?
#!/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"
答案 0 :(得分:3)
你的错误是$x=$var
。它应该是x=$var
。您可以将其视为$x
是变量x
中包含的值,因此您不希望将x
的值分配给x
本身。
#!/bin/sh
x=0
for var in "$@"; do
if [ "$var" -gt "$x" ]; then
x="$var"
fi
done
echo "Largest number: $x"
这是一个使用一些core-utils的替代脚本,它将使用负数:
#!/bin/bash
echo "Largest: $(printf '%i\n' $@ | sort -n | tail -n 1)"