繁体   English   中英

Shell脚本变量和循环

[英]Shell script variable & loop

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

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

#!/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"

你的错误是$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)"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM